从C#读取Excel数据

我正在尝试使用Office.Interoperability.Excel命名空间从Excel工作表中读取数据。 我想要得到表格的第一行,因为第一行包含标题,没有指定开始和结束单元格。 因为我不知道是否有新的列被添加到工作表。

Microsoft.Office.Interop.Excel.Application excelObj = new Application(); Microsoft.Office.Interop.Excel.Workbook myBook = excelObj.Workbooks.Open(@"D:\myFile.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 0, 0); Microsoft.Office.Interop.Excel.Worksheet mySheet = (Worksheet)myBook.Sheets.get_Item(1); Range range = mySheet.Cells.EntireRow; 

这里,范围成为整个范围,并且不限于标题列的数量。 另外我有一个大约10,000行的庞大数据进行处理。

我想你正在寻找这个:

 Range headers = mySheet.UsedRange.Rows(1); 

如果你的要求不涉及写回到Excel文件,我会build议你使用Excel数据读取器(http://exceldatareader.codeplex.com/)它更容易使用,不需要在服务器上的Excel和更快

我只是在这里回答了另一个Excel阅读问题: C#将.xls转换为.csv而不使用Excel

FileHelpers库是完美的任务。 我自己使用它的行数和以上。

一旦从Excel中读取行,我不知道你在做什么,但是如果你看看一些可以分解成步骤的处理过程,那么看看Rhino.Etl 。 这是处理大量数据的一个非常强大的方法。