首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用C#代码设置 Excel 单元格的数字格式

使用C#代码设置 Excel 单元格的数字格式

原创
作者头像
用户12401097
发布于 2026-10-13 14:11:16
发布于 2026-10-13 14:11:16
1170
举报

在 Excel 工作表中,原始数据通常以普通数字的形式呈现,缺乏直观性。通过设置数字格式,可以将这些数字转换为更易于理解的形式。例如,将销售数据设置为货币格式,添加货币符号和千位分隔符,可以让金额一目了然;将市场份额数据设置为百分比格式,则可以清晰地展示各部分所占的比例,便于快速比较和分析。

本文将介绍如何使用 C# 设置 Excel 单元格的数字格式。

安装所需组件

首先,需要将相关 DLL 文件添加为 .NET 项目的引用。你可以从官方下载页面获取所需文件,也可以通过 NuGet 安装相关组件。

代码语言:C#
复制
PM> Install-Package Spire.XLS

Excel 数字格式中的符号

在 Excel 数字格式代码中,可以使用多种符号来定义数字的显示方式。以下是常见符号及其详细说明:

符号

说明

0

必须显示的数字占位符。如果位数不足,则使用零补齐。

#

可选数字占位符,不显示无意义的前导零或末尾零。

?

可选数字占位符。通过添加空格对齐小数点以及分数中的末尾零。

.

表示小数点。

,

用作千位分隔符。

;

用于分隔数字格式代码的不同部分,分别定义正数、负数、零值和文本的显示方式。

%

将数值乘以 100,并添加百分号。

E、-、+

用于表示科学计数法中的指数及其正负号。

货币符号($、€、¥ 等)

显示相应的货币符号。

[Color]

指定数字的显示颜色。

日期/时间格式(yyyy、mmmm、mm、dd、hh、ss、AM/PM)

分别用于表示年份、完整月份名称、月份、日期、小时、秒以及 12 小时制的上午/下午标记。分钟通常使用 m 或 mm 表示,具体含义取决于上下文。

使用 C# 设置 Excel 单元格的数字格式

在 C# 中,可以通过 NumberValue 属性设置单元格的数值,并使用 NumberFormat 属性指定数字格式代码,从而控制数值的显示方式。

具体步骤如下:

  1. 创建一个 Workbook 工作簿对象。
  2. 通过 Workbook.Worksheets[] 属性获取指定的工作表。
  3. 通过 Worksheet.Range[] 属性获取指定的单元格或单元格区域。
  4. 使用 CellRange.Text 属性向指定单元格添加文本。
  5. 使用 CellRange.NumberValue 属性设置单元格的数值,再通过 CellRange.NumberFormat 属性设置相应的数字格式。
  6. 使用 Workbook.SaveToFile() 方法保存生成的 Excel 文件。

完整示例代码如下:

代码语言:C#
复制
using Spire.Xls;

namespace SetNumberFormat
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 Workbook 实例
            Workbook workbook = new Workbook();

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 向指定单元格添加文本并设置单元格样式
            sheet.Range["B3"].Text = "数值";
            sheet.Range["C3"].Text = "数字格式";
            sheet.Range["D3"].Text = "显示结果";
            sheet.Range["E3"].Text = "说明";
            sheet.Range["B3:E3"].Style.Font.IsBold = true;
            sheet.Range["B3:E3"].Style.KnownColor = ExcelColors.SkyBlue;

            // 使用零补齐数字位数
            sheet.Range["B4"].Text = "123";
            sheet.Range["C4"].Text = "0000";
            sheet.Range["D4"].NumberValue = 123;
            sheet.Range["D4"].NumberFormat = "0000";
            sheet.Range["E4"].Text = "使用零补齐数字位数";

            // 设置两位小数并使用千位分隔符
            sheet.Range["B5"].Text = "1234.5678";
            sheet.Range["C5"].Text = "#,##0.00";
            sheet.Range["D5"].NumberValue = 1234.5678;
            sheet.Range["D5"].NumberFormat = "#,##0.00";
            sheet.Range["E5"].Text = "保留两位小数并使用千位分隔符";

            // 将负数显示为红色
            sheet.Range["B6"].Text = "-1234.5678";
            sheet.Range["C6"].Text = "0;[Red]-0";
            sheet.Range["D6"].NumberValue = -1234.5678;
            sheet.Range["D6"].NumberFormat = "0;[Red]-0";
            sheet.Range["E6"].Text = "将负数显示为红色";

            // 设置为保留一位小数的百分比格式
            sheet.Range["B7"].Text = "0.12345";
            sheet.Range["C7"].Text = "0.0%";
            sheet.Range["D7"].NumberValue = 0.12345;
            sheet.Range["D7"].NumberFormat = "0.0%";
            sheet.Range["E7"].Text = "百分比保留一位小数";

            // 在数字前添加文本
            sheet.Range["B8"].Text = "1234.5678";
            sheet.Range["C8"].Text = "\"数量:\"0";
            sheet.Range["D8"].NumberValue = 1234.5678;
            sheet.Range["D8"].NumberFormat = "\"数量:\"0";
            sheet.Range["E8"].Text = "在数字前添加文本";

            // 设置带货币符号的数字格式
            sheet.Range["B9"].Text = "1234.5678";
            sheet.Range["C9"].Text = "$#,##0.00";
            sheet.Range["D9"].NumberValue = 1234.5678;
            sheet.Range["D9"].NumberFormat = "$#,##0.00";
            sheet.Range["E9"].Text = "显示货币符号";

            // 设置科学计数法格式
            sheet.Range["B10"].Text = "1234.5678";
            sheet.Range["C10"].Text = "0.00E+00";
            sheet.Range["D10"].NumberValue = 1234.5678;
            sheet.Range["D10"].NumberFormat = "0.00E+00";
            sheet.Range["E10"].Text = "使用科学计数法显示数字";

            // 设置分数格式
            sheet.Range["B11"].Text = "0.5";
            sheet.Range["C11"].Text = "# ?/?";
            sheet.Range["D11"].NumberValue = 0.5;
            sheet.Range["D11"].NumberFormat = "# ?/?";
            sheet.Range["E11"].Text = "将数字显示为分数";

            // 设置日期格式
            sheet.Range["B12"].Text = "45930";
            sheet.Range["C12"].Text = "yyyy-MM-dd";
            sheet.Range["D12"].NumberValue = 45930;
            sheet.Range["D12"].NumberFormat = "yyyy-MM-dd";
            sheet.Range["E12"].Text = "将数值显示为日期";

            // 设置时间格式
            sheet.Range["B13"].Text = "0.5";
            sheet.Range["C13"].Text = "h:mm:ss AM/PM";
            sheet.Range["D13"].NumberValue = 0.5;
            sheet.Range["D13"].NumberFormat = "h:mm:ss AM/PM";
            sheet.Range["E13"].Text = "将数值显示为时间";

            // 设置已使用区域的单元格样式
            sheet.AllocatedRange.Style.Font.FontName = "Calibri";
            sheet.AllocatedRange.Style.Font.Size = 11;
            sheet.AllocatedRange.Style.HorizontalAlignment = HorizontalAlignType.Left;

            // 自动调整列宽
            sheet.AutoFitColumn(2);
            sheet.AutoFitColumn(3);
            sheet.AutoFitColumn(4);
            sheet.AutoFitColumn(5);

            // 保存生成的 Excel 文件
            workbook.SaveToFile("ExcelNumberFormat.xlsx", ExcelVersion.Version2016);
        }
    }
}

总结

本文介绍了如何使用 C# 设置 Excel 单元格的数字格式。通过设置 NumberFormat 属性,可以根据实际需求灵活控制数值的显示方式,包括补齐数字位数、保留指定小数位、添加千位分隔符、将负数显示为红色,以及设置百分比、货币、科学计数法、分数、日期和时间等格式。

合理设置数字格式可以让 Excel 数据更加直观、规范,便于阅读、比较和分析。在处理销售报表、财务数据、统计结果等场景时,掌握这些格式设置方法能够有效提升数据展示的清晰度和可读性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 安装所需组件
  • Excel 数字格式中的符号
  • 使用 C# 设置 Excel 单元格的数字格式
  • 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档