Запись большого объекта в Excel - это чертовски не по времени. Есть ли способ это исправить? - PullRequest
0 голосов
/ 08 января 2020

У меня есть предопределенный формат файла Excel, и я записываю свой объект в этот файл Excel, что занимает много времени, и приложение переходит в устаревший режим.

Я использую библиотеку EpPlus.

Пожалуйста, найдите код ниже и дайте мне знать, если я могу сделать вещи лучше.

    FileInfo fileInfo = new FileInfo(xslxpath);
    using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))
    {
      int excelRow = 2;
      ExcelWorksheet worksheet1 = excelPackage.Workbook.Worksheets.First();
      foreach (var rows in objDetails)
      {
        worksheet1.Cells[excelRow, 1].Value = rows.ID.ToString();
        worksheet1.Cells[excelRow, 2].Value = rows.Name.ToString();
        worksheet1.Cells[excelRow, 3].Value = rows.Days.ToString();
        worksheet1.Cells[excelRow, 4].Value = rows.Amount.ToString();
        worksheet1.Cells[excelRow, 5].Value = rows.Reason.ToString();
        WriteToLogFile(LogFile, excelRow.ToString() + " " + rows.IPNumber.ToString());

        worksheet1.Cells.AutoFitColumns();
        excelRow++;
        WriteToLogFile(LogFile, excelRow.ToString() + " " + rows.IPNumber.ToString());
      }

      excelPackage.Save();
    }

1 Ответ

0 голосов
/ 08 января 2020
worksheet1.Cells.AutoFitColumns();

Вы должны вызывать это один раз после вашего l oop, а не для каждой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...