在 Excel 工作表中,原始数据通常显示为缺乏直观性的普通数字。通过设置数字格式,可以将这些数字转换成更容易理解的形式。例如,将销售额数据设置为货币格式,即添加货币符号和千位分隔符,可使所代表的金额一目了然。将市场份额数据格式化为百分比格式,可以清楚地显示各部分的比例,便于快速比较和分析。本文将介绍如何使用 Spire.XLS for .NET 通过 C# 设置 Excel 单元格中的数字格式 。
安装 Spire.XLS for .NET
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
Excel 数字格式中的符号
在 Excel 数字格式代码中,需要用到一些符号来定义数字的显示方式。下面是常用符号的详细解释:
符号 | 描述 |
0 | 必填数字占位符。如果数字的位数少于“0”的个数,Excel 会在数字前或后添加 0 以填满占位符 |
# | 可选数字占位符。不显示无意义的零。 |
? | 可选数字占位符。可以使具有不同小数位数的数字在小数点处对齐。 |
. | 代表小数点。 |
, | 代表千位分隔符。 |
; | 用于分隔正值、负值、零值和文本值的数字格式的不同部分。 |
% | 百分比符号。将数字乘以 100 并显示为百分比形式。 |
E - + | 代表科学计数法符号。 |
$, €, ¥, etc. | 代表相应的货币符号。 |
[Color] | 用于指定数字的颜色。 |
Date/Time (yyyy, mmmm, mm, dd, hh, ss, AM/PM) | 分别代表年、全月名、月、日、时、分、秒和 12 小时时钟标记。 |
C# 设置 Excel 中的数字格式
Spire.XLS for .NET 提供了用于设置单元格数值的 CellRange.NumberValue 属性和用于设置数字格式的 CellRange.NumberFormat 属性。具体步骤如下:
- 创建 Workbook 类的对象。
- 通过 Workbook.Worksheets[] 属性获取指定的工作表。
- 通过 Workbook.Range[] 属性获取指定的单元格。
- 通过 CellRange.Text 属性向指定单元格添加文本。
- 通过 CellRange.NumberValue 属性为指定单元格添加数值,然后通过 CellRange.NumberFormat 属性设置数字格式。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- 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 = "\"Quantity: \"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);
// 保存结果文件
workbook.SaveToFile("Excel数字格式.xlsx", ExcelVersion.Version2016);
}
}
}
申请临时 License
如果您需要去除生成文档中的评估提示或解除功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。