ClosedXml不允许在单元格中插入最小日期时间。我的数据表包含ClosedXml不喜欢的最小日期时间值。
using (var workbook = new XLWorkbook())
{
var dataTable = GetDataTable();
workbook.Worksheets.Add(dataTable, "myWorksheet"); // Exception thrown
workbook.SaveAs(filePath);
}
添加工作表时引发异常: “无法将单元格值设置为01/01/0001 00:00:00”
如何允许ClosedXml插入此值而不会引发异常?例如,它可以写空值而不是抛出异常。无需修改dataTable来清理这些最小datetime值,是否有可能解决这个问题?
答案 0 :(得分:2)
Excel本身不允许您将单元格值设置为如此低的日期值。自己尝试一下。以前,可以在ClosedXML中设置该值,但是Excel会认为该文件已损坏。添加该检查是为了避免创建看似损坏的文件。
答案 1 :(得分:0)
尝试将您的DateTime默认值更改为UTC:
DateTime dt = new DateTime();
dt.ToUniversalTime()
答案 2 :(得分:0)
我在这里也有同样的情况。 解决方案很简单, 使datatable字段datetime的值为空 因此ClosedXML可以处理空日期并将其更改为空