详解C#在Excel单元格中应用多种字体格式

慢慢来
慢慢来
发布时间:2026-10-13| 6人浏览过
原创

默认情况下,Excel单元格的字体样式仅能应用于整个字符串。若需在同一个单元格内实现多字体混排(如加粗、变色、上下标共存),可利用Spire.XLS组件中的富文本接口进行操作。本文将详细介绍如何通过创建多个ExcelFont实例并应用到指定字符区间来实现这一效果。

准备环境与引用库

在执行代码前,需确保项目中已正确引入Spire.XLS库。根据开发习惯,可选择以下两种安装方式之一:

第1步:手动添加DLL引用

目的:将本地下载的安装包中的程序集添加到项目中。
操作:

  1. 从官网下载安装包并解压,进入 BIN 文件夹找到 Spire.Xls.dll。
  2. 打开 Visual Studio 解决方案资源管理器。
  3. 右键点击项目下的“引用”,选择“添加引用”。
  4. 在弹出的窗口中选择“浏览”,定位到 DLL 文件所在路径并完成添加。

第2步:NuGet 包管理器安装

目的:快速管理依赖包版本。
入口:Visual Studio 工具栏 → 工具 → NuGet 包管理器 → 程序包管理器控制台。

  • 界面操作:在解决方案资源管理器中右键“引用”→ 管理 NuGet 包 → 搜索 Free Spire.XLS 并安装。
  • 命令行操作:直接运行以下命令:Install-Package FreeSpire.XLS -Version 12.2.0

C#实现在同一单元格应用多种字体样式

核心思路是获取单元格的 RichText 属性,该属性支持对长字符串的不同索引区间分别设置 ExcelFont 属性。

第1步:创建Workbook与工作表

初始化工作簿对象并获取第一张工作表的引用。

第2步:定义多种字体样式 (ExcelFont)

通过 wb.CreateFont() 批量创建不同属性的字体对象,包括名称、粗细、样式、颜色、字号以及上下标特性。

第3步:赋值并应用字体到指定区域

给目标单元格(如 A1)填入测试字符串,然后使用 SetFont(startIndex, endIndex, font) 方法,将之前定义的多种样式映射到字符串的特定字符范围。

using Spire.Xls;

namespace AddFormatsToTextInCell
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 创建工作簿与获取工作表
            Workbook wb = new Workbook();
            Worksheet sheet = wb.Worksheets[0];

            // 2. 配置多种独立的字体样式对象
            // 字体名称(幼圆)
            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;

            // 特定颜色样式(Rose)
            ExcelFont fontColor = wb.CreateFont();
            fontColor.KnownColor = ExcelColors.Rose;

            // 字号大小设定 (15pt)
            ExcelFont fontsize = wb.CreateFont();
            fontsize.Size = 15;

            // 3. 向A1单元格写入文本并绑定富文本对象
            RichText richText = sheet.Range["A1"].RichText;
            richText.Text = "这段文字是测试文字,仅供测试时使用!C6B2幼圆体";

            // 4. 针对不同区间的字符应用上述样式
            // 索引0-3 (这段文) -> 加粗
            richText.SetFont(0, 3, fontBold);
            // 索引4-6 (字测) -> 倾斜
            richText.SetFont(4, 6, fontItalic);
            // 索引7-9 (试文) -> 下划线
            richText.SetFont(7, 9, fontUnderline);
            // 索引10-13 (字仅) -> 颜色
            richText.SetFont(10, 13, fontColor);
            // 索引14-17 (供测试) -> 大字号
            richText.SetFont(14, 17, fontsize);
            // 索引19 (使) -> 下标
            richText.SetFont(19, 19, fontSubscript);
            // 索引21 (用) -> 上标
            richText.SetFont(21, 21, fontsuperscript);
            // 剩余部分应用幼圆字体
            richText.SetFont(22, richText.Text.Length, fontname);

            // 可选:调整列宽以展示完整内容
            sheet.Range["A1"].ColumnWidth = 50;

            // 5. 保存生成的Excel文件
            wb.SaveToFile("Result.xlsx", FileFormat.Version2013);
        }
    }
}

对应的 VB.NET 实现逻辑完全一致,主要语法差异在于变量声明方式与枚举调用:

Imports Spire.Xls

Namespace AddFormatsToTextInCell
    Class Program
        Private Shared Sub Main(args As String())
            Dim wb As New Workbook()
            Dim sheet As Worksheet = wb.Worksheets(0)

            Dim fontname As ExcelFont = wb.CreateFont()
            fontname.FontName = "幼圆"

            Dim fontSubscript As ExcelFont = wb.CreateFont()
            fontSubscript.IsSubscript = True

            ' ...(中间省略其他Font对象创建过程,逻辑同上) ...

            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)
        End Sub
    End Class
End Namespace

结果验证

运行上述 C# 或 VB.NET 代码后,程序将在当前目录下生成名为 Result.xlsx 的文件。使用 Excel 打开该文件,查看 A1 单元格,您将看到字符串的不同部分呈现出各自设定的独立样式(如部分文字加粗、变色或带有下标/上标)。

以上就是详解C#实现在Excel单元格中应用多种字体格式的详细内容,更多关于C# Excel应用多种字体的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。