从流中生成 Excel

Generate Excel From Stream

我会问我使用的方法是否是从流创建 excel 文件的最佳方法。 我问是因为这个过程会增长并可能导致问题。

这是一个递归过程。 首先请求数据。 创建流 创建文件并保存 (Azure)

重要的是,如果一个用户提出新的请求读取旧文件下载并与新数据合并,数据流中的所有数据肯定使用 EPPlus 库,文件可以有 60,000 行。

一些代码:

//Request Data
var dta = db.Database.SqlQuery<ListData>(String.Format(......

//Generate Container - StreamData can be null or contain old data downloaded
using (ExcelPackage epck = new ExcelPackage(StreamData)){...}

foreach (var item in dta){...}

花费更多时间的函数是在库的帮助下创建文件时(库一次从我访问的数据列表中创建一行)

希望您能指导我改进我的流程,或者告诉我一些对您有帮助的方法。

EPPlus 有几个函数(见下文)可以单步加载所有数据或循环加载所有记录。我用过 LoadFromDataTable(),它很快,节省了很多时间。

LoadFromArrays()
LoadFromCollection<T>()
LoadFromDataReader()
LoadFromDataTable()
LoadFromText()

除此之外,使用范围来设置格式和其他内容,而不是循环单个单元格。