首页 > 解决方案 > ClosedXML DataTable 到 Excel 不会将 int(c#) 值导出到 Number(Excel)

问题描述

数字存储为文本警告!

数据表填充如下值;

  dr["Call Duration"] = arrayItem.duration;
  dr["Ring Duration"] = arrayItem.ring_time;

其中持续时间在 int 中。但是,导出的 excel 不会以数字格式显示持续时间值。Excel 格式示例在下面共享。 存储为文本警告的数字

    XLWorkbook wb = new XLWorkbook();
    DataTable dt = GetDataTable();
    wb.Worksheets.Add(dt,"Sheet1"); 

是否有任何方法可以在数字格式预导出时生成 int 或 string 值?Excel 的 VALUE 函数或转换为数字不是选项。

保存导出的文件如下所示;

wb.SaveAs("datatable" + ".xlsx");

标签: c#exceldatatable

解决方案


只是一个快速修复我不得不让列标题抛出异常文本值无法转换为数字。我在下面分享了我的最终解决方案。

wb.Worksheet("Sheet1").Column(2).CellsUsed(c => c.WorksheetRow().RowNumber() != 1).DataType = XLDataType.Number;
wb.Worksheet("Sheet1").Column(3).CellsUsed(c => c.WorksheetRow().RowNumber() != 1).DataType = XLDataType.Number;

推荐阅读