是否可以通过closedXml读取非常大的ex​​cel文件(> 500000条记录)的部分工作表?

时间:2017-03-14 10:48:44

标签: c# excel large-files closedxml

打开大型EXCEL文件时出现问题。 例如,当我声明XLWorkbook时,它会将所有数据加载到此对象。我决定部分阅读它,因为它返回了一个错误:outOfMemory。是否可以读取范围的部分?还有其他方法吗?

样品:

using ClosedXML.Excel;        
public void FileOpen(string path)
{
   var workBook = new XLWorkbook(path);
// . . .
}

1 个答案:

答案 0 :(得分:0)

您可以使用好的'OleDbAdapter来选择给定的行范围。请参阅下面的示例,其中我选择前10,000行(来自工作表“Sheet1”),然后选择另一组来自excel文件的10,000行:

    DataSet excelDataSet = new DataSet();
    using (OleDbConnection connection = new System.Data.OleDb.OleDbConnection(connectionString))
    {
         connection.Open();
         OleDbDataAdapter cmd = new OleDbDataAdapter("select * from [Sheet1$1:10000]", connection);
         cmd.Fill(excelDataSet);

...

         OleDbDataAdapter cmd = new OleDbDataAdapter("select * from [Sheet1$10000:20000]", connection);
         connection.Close();
    }