Проходя по каждой ячейке в листе Excel и присваивайте значение NULL с помощью EPP Plus - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть приложение, которое загружает таблицу Excel по нажатию кнопки, данные заполняются из таблицы данных ADO.NET.Теперь проблема в том, что в базе данных мало столбцов данных NULL, они не печатаются как NULL в ячейке Excel, вместо этого они пустые.Как мне заполнить значение NULL в этих ячейках Excel?

Прямо сейчас я перебираю каждый столбец, чтобы увидеть, имеет ли значение 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 голосов
/ 19 февраля 2019

Вы можете иметь метод расширения, который будет выглядеть следующим образом:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...