从C#读取Excel数据

时间:2011-09-27 17:07:46

标签: c# excel excel-interop

我正在尝试使用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行要处理的大量数据。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我认为你正在寻找这个:

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

答案 2 :(得分:1)

我刚刚回答了另一个Excel阅读问题:C# converting .xls to .csv without Excel

FileHelpers库非常适合您的任务。我自己使用它来处理那些行数以上。

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