循环遍历excel表中的每个单元格并使用EPP Plus分配NULL值

问题描述 投票:0回答:1

我有一个应用程序,按下单击按钮下载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
    }
}
c# asp.net-mvc epplus
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.