遍历excel工作表中的每个单元格,并使用EPP Plus

时间:2019-02-19 07:10:54

标签: c# asp.net-mvc epplus

我有一个应用程序,单击按钮即可下载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
    }
}

1 个答案:

答案 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);