特定行的LinqToExcel GetColumnNames

Car*_*ovo 7 c# linq-to-excel asp.net-mvc-4

我正在使用库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);
Run Code Online (Sandbox Code Playgroud)

谢谢.

Pau*_*aul 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());
Run Code Online (Sandbox Code Playgroud)


Cap*_*vel 5

未来googlers的一个FYI:

GetColumnNames()自上述答案被接受后,似乎已经发生了变化.

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

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