我正在尝试使用c#中的SetDataType()
方法将单元格的数据类型设置为String
:
worksheet.Cell(x, y).SetDataType(XLDataType.Text);
但SetDataType()
从0.94.0开始从ClosedXML中删除。我现在不知道如何解决我的问题。
我应该使用SetValue()
吗?它是否自动将单元格的类型设置为传递给的值的类型?
谢谢
编辑对我来说,也是"通用"的类型。(没有特定格式)可以
// To set the DataType
worksheet.Cell(1, 1).DataType = XLDataType.Text;
// To set the Value for the cell
worksheet.Cell(1, 1).Value = "Example";
背景:这也适用于列(i),行(i)或范围(i, j)据我所知,大多数值将自动映射。如果您想手动映射这些值,您可以这样做:
private static XLDataType GetExcelTypeMapping(object value) => value switch {
int => XLDataType.Number,
decimal => XLDataType.Number,
string => XLDataType.Text,
bool => XLDataType.Boolean,
System.DateTime => XLDataType.DateTime,
_ => throw new NotSupportedException($"{value} is not supported."),
};
:
foreach (var value in values.FirstOrDefault()) {
int i = 1;
worksheet.Column(i) = GetExcelTypeMapping(object value);
i++;
}
代码中的。该示例基于IEnumerable