C#/VB.NET 在Excel單元格中應用多種字型格式

Mia張發表於2022-05-07

在Excel中,可對單元格中的字串設定多種不同樣式,通常只需要獲取到單元格直接設定樣式即可,該方法設定的樣式會應用於該單元格中的所有字元。如果需要對單元格中某些字元設定樣式,則可以參考本文中的方法。本文,將以C#及VB.NET程式碼為例,介紹如何在Excel同一個單元格中應用多種字型樣式,包括字型加粗、傾斜、下劃線、字號大小、字型顏色、上標、下標、字型等。在操作Excel單元格時,可參考使用本文方法。下面是具體方法和步驟。

【引用dll】

方法1

在程式中引入Spire.Xls.dll檔案;將 Free Spire.XLS for .NET 下載到本地,解壓,安裝。安裝完成後,找到安裝路徑下BIN資料夾中的Spire.Xls.dll。然後在Visual Studio中開啟“解決方案資源管理器”,滑鼠右鍵點選“引用”,“新增引用”,將本地路徑BIN資料夾下的dll檔案新增引用至程式。

方法2

通過 NuGet 安裝。可通過以下2種方法安裝:

1.可以在Visual Studio中開啟“解決方案資源管理器”,滑鼠右鍵點選“引用”,“管理NuGet包”,然後搜尋“Free Spire.XLS”,點選“安裝”。等待程式安裝完成。

  2.將以下內容複製到PM控制檯安裝。

Install-Package FreeSpire.XLS -Version 12.2.0


 

【在同一單元格應用多種字型樣式】

C#

using Spire.Xls;

namespace AddFormatsToTextInCell
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立Workbook類的物件
            Workbook wb = new Workbook();

            //獲取第一張工作表(新建的工作簿已預設包含3張worksheet工作表)
            Worksheet sheet = wb.Worksheets[0];

            //設定字型名稱
            ExcelFont fontname = wb.CreateFont();
            fontname.FontName = "幼圓";
             
            //設定字型下標
            ExcelFont fontSubscript = wb.CreateFont();
            fontSubscript.IsSubscript = true;

            //設定字型上標
            ExcelFont fontsuperscript = wb.CreateFont();
            fontsuperscript.IsSuperscript = true;

            //設定加粗的字型樣式
            ExcelFont fontBold = wb.CreateFont();
            fontBold.IsBold = true;

            //設定下劃線字型樣式          
            ExcelFont fontUnderline = wb.CreateFont();
            fontUnderline.Underline = FontUnderlineType.Single;

            //設定傾斜字型樣式           
            ExcelFont fontItalic = wb.CreateFont();
            fontItalic.IsItalic = true;

            //設定綠色字型樣式            
            ExcelFont fontColor = wb.CreateFont();
            fontColor.KnownColor = ExcelColors.Rose;

            //設定字型字號大小
            ExcelFont fontsize = wb.CreateFont();
            fontsize.Size = 15;
           
            //新增文字到A1單元格
            RichText richText = sheet.Range["A1"].RichText;
            richText.Text = "這段文字是測試文字,僅供測試時使用!C6B2幼圓體";

            //給指定字元新增字型樣式
            richText.SetFont(0, 3, fontBold);
            richText.SetFont(4,6,fontItalic);
            richText.SetFont(7,9,fontUnderline);
            richText.SetFont(10,13, fontColor);
            richText.SetFont(14, 17,fontsize);            
            richText.SetFont(19,19,fontSubscript);
            richText.SetFont(21,21,fontsuperscript);
            richText.SetFont(22, richText.Text.Length, fontname);

            //設定列寬
            sheet.Range["A1"].ColumnWidth = 50;

            //儲存文件
            wb.SaveToFile("Result.xlsx",FileFormat.Version2013);
        }
    }
}

vb.net

Imports Spire.Xls

Namespace AddFormatsToTextInCell
    Class Program
        Private Shared Sub Main(args As String())
            '建立Workbook類的物件
            Dim wb As New Workbook()

            '獲取第一張工作表(新建的工作簿已預設包含3張worksheet工作表)
            Dim sheet As Worksheet = wb.Worksheets(0)

            '設定字型名稱
            Dim fontname As ExcelFont = wb.CreateFont()
            fontname.FontName = "幼圓"

            '設定字型下標
            Dim fontSubscript As ExcelFont = wb.CreateFont()
            fontSubscript.IsSubscript = True

            '設定字型上標
            Dim fontsuperscript As ExcelFont = wb.CreateFont()
            fontsuperscript.IsSuperscript = True

            '設定加粗的字型樣式
            Dim fontBold As ExcelFont = wb.CreateFont()
            fontBold.IsBold = True

            '設定下劃線字型樣式          
            Dim fontUnderline As ExcelFont = wb.CreateFont()
            fontUnderline.Underline = FontUnderlineType.[Single]

            '設定傾斜字型樣式           
            Dim fontItalic As ExcelFont = wb.CreateFont()
            fontItalic.IsItalic = True

            '設定綠色字型樣式            
            Dim fontColor As ExcelFont = wb.CreateFont()
            fontColor.KnownColor = ExcelColors.Rose

            '設定字型字號大小
            Dim fontsize As ExcelFont = wb.CreateFont()
            fontsize.Size = 15

            '新增文字到A1單元格
            Dim richText As RichText = sheet.Range("A1").RichText
            richText.Text = "這段文字是測試文字,僅供測試時使用!C6B2幼圓體"

            '給指定字元新增字型樣式
            richText.SetFont(0, 3, fontBold)
            richText.SetFont(4, 6, fontItalic)
            richText.SetFont(7, 9, fontUnderline)
            richText.SetFont(10, 13, fontColor)
            richText.SetFont(14, 17, fontsize)
            richText.SetFont(19, 19, fontSubscript)
            richText.SetFont(21, 21, fontsuperscript)
            richText.SetFont(22, richText.Text.Length, fontname)

            '設定列寬
            sheet.Range("A1").ColumnWidth = 50

            '儲存文件
            wb.SaveToFile("Result.xlsx", FileFormat.Version2013)
            System.Diagnostics.Process.Start("Result.xlsx")
        End Sub
    End Class
End Namespace

設定效果:

 

—END—

 

相關文章