【发布时间】:2020-04-25 23:57:24
【问题描述】:
我有一个预定义格式的 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();
}
【问题讨论】:
-
WriteToLogFile方法有什么作用?为什么每次迭代都用相同的信息调用它两次?考虑将此调用取出并在之后将其放入自己的单独迭代中。并且还将worksheet1.Cells.AutoFitColumns()移动到仅在迭代之外调用一次。 -
日志仅用于测试目的,不会用于最终产品:)。取出 worksheet1.Cells.AutoFitColumns() 就可以了。
标签: excel datatable c#-3.0 epplus