我有一个应用程序,该应用程序在单击按钮上下载Excel表,该数据从ADO.NET数据表中填写。现在的问题是,数据库中的数据列很少,它们在Excel单元格中不打印为null,而是其空白。如何填充这些Excel单元格中的空值?
现在,我正在遍历每一列,以查看该值是否为DateTime(下面的代码)。可以通过在每行和列单元格中循环循环吗?
可以做类似的事情来分配空值int colWorkSheet1 = 0;
foreach (DataColumn data in dataTable1.Columns)
{
colWorkSheet1++;
if (data.DataType == typeof(DateTime))
{
worksheet1.Column(colWorkSheet1).Style.Numberformat.Format = "MM/dd/yyyy";// use "MM/dd/yyyy hh:mm:ss AM/PM"; for time and seconds
}
}
您可以拥有一个看起来像这样的扩展方法:
public static void InsertSpecial(this ExcelWorkSheet me, int row, int col, object value)
{
if(value == null)
me.SetValue(row, col, "NULL");
else
me.SetValue(row, col, value);
if(value is DateTime)
me.Cells[row, col].Style.Numberformat.Format = "MM/dd/yyyy";
// add anything you want to check/do here
}
,然后称其为:
xlWs.InsertSpecial(row, col, value);
而不是:
xlWs.SetValue(row, col, value);