【问题标题】:Read Excel data from C#从 C# 读取 Excel 数据
【发布时间】:2011-09-27 17:07:45
【问题描述】:

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

【问题讨论】:

    标签: c# excel excel-interop


    【解决方案1】:

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

    【讨论】:

    • +1。是的!所有这些互操作仪式......打哈欠。如果你也想写:Flexcel 或 Gembox(虽然不是免费的)。
    • gr8 工具...但我也想导出回 excel :)
    【解决方案2】:

    我想你正在寻找这个:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多