0
我在使用數據讀取器上傳大型Excel文件(300mb +)時遇到問題。有了這段代碼,我打開了excel文件並分別加載每一行。使用斷點我注意到,這一個語句需要30s +。內存使用量也有穩步增長。 指定ExecuteReader()方法的CommandBehavior參數(例如SequentialAccess)不起作用。如何處理大型Excel文件?
我在這裏做錯了什麼?是否有其他處理大型(Excel)文件的方法?
const string inputFilePath = @"C:\largefile.xlsx";
const string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=\"Excel 12.0;IMEX=1;HDR=YES;\";Data Source=" + inputFilePath;
using (var connection = new OleDbConnection(connectionString))
{
connection.Open();
var command = new OleDbCommand("largesheet$", connection) {CommandType = CommandType.TableDirect};
var reader = command.ExecuteReader(); // <-- Completely loads file/sheet into memory
while (reader.HasRows)
{
reader.Read();
}
connection.Close();
}
_ 「(300MB +)」 _ - 有你的問題。難道你不能在某種程序中導入Excel文件,這些程序是針對這種數據量的,比如數據庫? – CodeCaster
所以唯一的辦法是分割文件並分別上傳它? – Freddy
看看http://stackoverflow.com/a/17375381/2806497 – OlivierH