无法在ClosedXML中插入最小日期时间作为单元格值

时间:2019-07-03 12:12:04

标签: c# closedxml

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值,是否有可能解决这个问题?

3 个答案:

答案 0 :(得分:2)

Excel本身不允许您将单元格值设置为如此低的日期值。自己尝试一下。以前,可以在ClosedXML中设置该值,但是Excel会认为该文件已损坏。添加该检查是为了避免创建看似损坏的文件。

答案 1 :(得分:0)

尝试将您的DateTime默认值更改为UTC:

DateTime dt = new DateTime();
dt.ToUniversalTime()   

答案 2 :(得分:0)

我在这里也有同样的情况。 解决方案很简单, 使datatable字段datetime的值为空 因此ClosedXML可以处理空日期并将其更改为空