如何在Date列中将单元格留空,而不是在EPPlus中写入DateTime.Min

时间:2016-03-04 14:22:01

标签: epplus epplus-4

我需要使用EPPlus将格式化日期写入Excel,将空单元格留在没有日期写入的位置。我尝试过以下方法:

  1. 编写日期,然后格式化。这有效,除非我没有日期,在这种情况下写入最小值:
  2. enter image description here

    1. 将日期格式化为字符串(在没有日期时传递空字符串),然后指定自定义格式。 The problem with this is that Excel doesn't see the type as a date,因此下游系统无法使用它:
    2. enter image description here

      如何使用EPPlus将日期写入Excel,其中日期被识别为日期类型(不是字符串),但是根本没有写入缺失日期值?

1 个答案:

答案 0 :(得分:2)

确保绑定到日期列的数据类型为DateTime?(可为空)。 仅当您提供null值时,才会呈现空列。

例如:

// Date format on first column
sheet.Column(1).Style.Numberformat.Format = "yyyy-mm-dd";

// Some date values
var columnValues = new List<DateTime?> {
    DateTime.Now,
    null,
    DateTime.Now.AddDays(1) };

// Bind values to column
sheet.Cells[1, 1].LoadFromArrays(columnValues.Select(v => new object[] { v }));

结果:

enter image description here