Excel处理控件Spire.XLS系列教程:C# 设置 Excel 中的数字格式

在 Excel 工作表中,原始数据通常显示为缺乏直观性的普通数字。通过设置数字格式,可以将这些数字转换成更容易理解的形式。例如,将销售额数据设置为货币格式,即添加货币符号和千位分隔符,可使所代表的金额一目了然。将市场份额数据格式化为百分比格式,可以清楚地显示各部分的比例,便于快速比较和分析。本文将介绍如何使用 Spire.XLS for .NET 通过 C# 设置 Excel 单元格中的数字格式 。

Spire.XLS for .NET试用下载

安装 Spire.XLS for .NET

E-iceblue旗下Spire是国产文档处理领域的优秀产品,支持国产化开发。首先,您需要将 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() 方法保存结果文件。
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);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36129733/article/details/147067529
今日推荐