7

我正在使用库 LinqToExcel 来读取我的 mvc4 项目中的 excel 文件。我的问题是当我尝试阅读第 4 行的标题时......我该怎么做?

在项目中,存在一个返回所有列名的函数,但我认为这些列需要位于第 0 行。

    // Summary:
    //     Returns a list of columns names that a worksheet contains
    //
    // Parameters:
    //   worksheetName:
    //     Worksheet name to get the list of column names from
    public IEnumerable<string> GetColumnNames(string worksheetName);

谢谢。

4

2 回答 2

6

不幸的是,该GetColumnNames()方法仅在标题行位于第 1 行时才有效。

但是,应该可以使用该WorksheetRangeNoHeader()方法获取列名。

它看起来像这样

var excel = new ExcelQueryFactory("excelFileName");
// Only select the header row
var headerRow = from c in excel.WorksheetRangeNoHeader("A4", "Z4")
                select c;

var columnNames = new List<string>();
foreach (var headerCell in headerRow)
  columnNames.Add(headerCell.ToString());
于 2013-10-14T14:40:05.797 回答
6

供未来的谷歌员工参考:

GetColumnNames()自从上述答案被接受以来,情况似乎已经发生了变化。

现在有一个重载,您可以在其中将标题行的范围定义为字符串:

 // This will return a List<string> 
 var colNames = ExcelFile
                .GetColumnNames(SheetName, "A9:AF9")
                .ToList();
于 2015-09-29T13:47:51.293 回答