2015-06-01 69 views
0

我會問,如果我使用的方法是從流中創建excel文件的最佳方法。 我問,因爲這個過程會增長並可能導致問題。從流生成Excel

這是一個遞歸過程。 首先請求數據。 創建流 創建文件並保存(天青)

這裏是最重要的事情,如果一個用戶發出一個新的請求讀取舊文件被下載並使用新的數據進行合併,所有的數據流肯定使用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){...} 

那花費更多的時間在文件被創建時,是函數與庫的幫助(庫從我訪問的數據列表的時間創建行)

我希望你能引導我改進我的過程,或告訴我一些幫助你的方法。

回答

0

EPPlus具有很少的功能(下面)來代替單步加載所有數據或循環所有記錄。我已經使用LoadFromDataTable(),它很快,節省了很多時間。

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

除此之外,使用範圍來做格式化和其他東西,而不是循環單個單元格。