1

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

  1. 写一个日期,然后格式化它。除非我没有日期,否则这有效,在这种情况下写入最小值:

在此处输入图像描述

  1. 将日期格式化为字符串(当没有日期时传递一个空字符串),然后分配自定义格式。问题在于 Excel 没有将类型视为 date,因此下游系统无法使用它:

在此处输入图像描述

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

4

1 回答 1

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 }));

结果:

在此处输入图像描述

于 2016-03-11T08:12:01.607 回答