在ClosedXML中向电子表直接插入未格式化的字符串
ClosedXML库提供了在.NET中操作XLSX格式的电子表的便捷接口。但是,当使用ClosedXML.Excel.IXLCell.Value = StringData语法设置单元格的值时,ClosedXML可能将字符串数据进行转译,导致最终得到的电子表格数据错误。例如,以半角逗号分隔数字的字符串值可能被转译为日期,导致数据丢失。
如果需要直接插入不格式化的字符串,可以使用ClosedXML.Excel.IXLCell接口提供的SetValue()函数,使用该函数插入字符串值时,ClosedXML不会进行转译。将ClosedXML.Excel.IXLCell.Style.NumberFormat.NumberFormatId属性设为ClosedXML.Excel.XLPredefinedFormat.Number.Text可以保证以文本形式显示:
OutputXLSXWorksheet.Cell(OutputRowPointer, OutputColPointer).Style.NumberFormat.NumberFormatId = Int(XLPredefinedFormat.Number.Text)
OutputXLSXWorksheet.Cell(OutputRowPointer, OutputColPointer).SetValue(StringValue)
参考资料:
https://github.com/ClosedXML/ClosedXML/wiki/Text-with-numbers-are-getting-converted-to-numbers
页面版本: 2, 最后编辑于: 26 Mar 2025 19:13