我有一个应用程序,单击按钮即可下载excel表格,数据是从ADO.NET数据表填充的。现在的问题是,数据库中很少有数据列为NULL,在Excel单元格中它们不会显示为NULL,而是空白。如何在这些Excel单元格中填充NULL值?
现在,我遍历每一列以查看该值是否为Datetime(下面的代码)。 可以通过遍历每个行和列单元格来执行类似的操作以分配NULL值吗?
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
}
}
答案 0 :(得分:0)
您可以有一个扩展方法,如下所示:
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);