2013-08-26 21 views
0

我正在讀取excel文件,但並非所有文件都具有相同的列標題,但列順序始終相同。我想用linq讀取excel文件,但沒有指定特定的列名稱,但我可以根據他們的順序只使用列?使用linq從excel文件中讀取列

var _excelFile = new ExcelQueryFactory(openFileDialog1.FileName); 
       var _info = from x in _excelFile.Worksheet() 
          select new 
          { 

          }; 

回答

0

是啊,你可以使用WorksheetNoHeader方法,通過它們的索引,而不是他們的名字來引用列。

下面是一個例子:

var excel = new ExcelQueryFactory("excelFileName"); 
var indianaCompanies = from c in excel.WorksheetNoHeader() 
         where c[2] == "IN" //value in 3rd column 
         select c; 
+0

所以,如果我有13列,我會做C [1] ......一路到c [13]。 「IN」代表什麼?我應該用列中的項目替換嗎? – Masriyah

+0

我刪除了where語句併爲「indianaCompanies」中的每個項目創建了一個foreach語句,並根據該列分配了一個標題:ElementAt(0)... – Masriyah

+0

代碼僅僅是一個示例。因此,在這種情況下,過濾只包含第二個索引值等於'IN'的行。 – Paul