ClosedXML 0.94.0后SetDataType方法移除,如何设置单元格数据类型?
ClosedXML 0.94.0+ 替换SetDataType()的解决方案
是的,
SetValue()完全可以替代原来的SetDataType(),它会自动根据传入值的类型设置单元格的数据类型:- 传入字符串时,单元格会被设为文本类型,和你原来用
SetDataType(XLDataType.Text)的效果一致; - 传入数值、日期等其他类型时,会自动匹配对应的Excel单元格类型。
- 传入字符串时,单元格会被设为文本类型,和你原来用
代码示例:
// 直接赋值字符串,自动设为文本类型 worksheet.Cell(x, y).SetValue("目标字符串内容"); // 如果需要将数值以文本类型存储(比如保留前导零),直接传入字符串形式的数值即可 worksheet.Cell(x, y).SetValue("00123");关于“常规”类型的需求:
如果你不需要强制指定为文本类型,直接给单元格赋值对应类型的值即可,ClosedXML会自动使用Excel的“常规”格式对应的类型,无需额外设置。额外技巧:如果要将数值强制以文本格式显示(但底层仍为数值类型),可以设置单元格的数字格式为文本格式符
@:worksheet.Cell(x, y).SetValue(12345).SetNumberFormat("@");
内容的提问来源于stack exchange,提问作者ALX
相关产品推荐
相关产品推荐

