LinqToExcel GetColumnNames at specific Row

本文关键字:Row specific at GetColumnNames LinqToExcel | 更新日期: 2023-09-27 18:35:27

我正在使用 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);

谢谢。

LinqToExcel GetColumnNames at specific Row

不幸的是,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());

供未来谷歌用户参考:

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

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

 // This will return a List<string> 
 var colNames = ExcelFile
                .GetColumnNames(SheetName, "A9:AF9")
                .ToList();