使用OpenXML SDK从Excel读取数据的有效方法

时间:2015-01-28 19:58:24

标签: excel import openxml-sdk

我正在尝试从excel文件导入数据,该文件有8张,其中一张包含56000行。此工作表有44列数据。为了使用OpenXML访问前两行的数据,我使用以下代码。

using (SpreadsheetDocument spreadSheetDocument = SpreadsheetDocument.Open(importFileCopyPath, false))

{

string relationshipId = spreadSheetDocument.WorkbookPart.Workbook.Descendants<Sheet>().Where(p => p.Name.Value == "Sheet1").Select(q => q.Id.Value).FirstOrDefault(); 

var worksheetPart = (WorksheetPart)spreadSheetDocument.WorkbookPart.GetPartById(relationshipId);

Worksheet workSheet = worksheetPart.Worksheet;

var sheetData = workSheet.GetFirstChild<SheetData>();

var rows = sheetData.Descendants<Row>();
}

然后我遍历我在第5行中得到的行集合。不幸的是,对于具有56000行的文件,这需要2分钟从前两行提取数据。这是因为行号。 3将整张纸张加载56000行到内存中。 有没有更好的方法来绕过加载整个工作表数据并直接访问前两行的内容?

0 个答案:

没有答案