【问题标题】:How to leave cells empty in Date column instead of writing DateTime.Min in EPPlus如何在日期列中将单元格留空,而不是在 EPPlus 中写入 DateTime.Min
【发布时间】:2016-03-04 14:22:00
【问题描述】:

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

  1. 写入日期,然后对其进行格式化。这有效,除非我没有日期,在这种情况下写入最小值:

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

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

【问题讨论】:

  • 如果您正在进行演员表,那么您可能在没有日期的单元格中输入了 0。发布您的代码,以便其他人可以查看。

标签: epplus epplus-4


【解决方案1】:

确保绑定到日期列的数据类型为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-08-03
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 2016-11-19
相关资源
最近更新 更多