2013-10-10 188 views
3

我有一個從excel中讀取值並插入到table.I選擇第一行作爲表的列名的代碼。在這裏我想檢查名稱在Excel表格的第一行與表格列名稱相同? 這裏是我讀取excel的代碼。在excel行中檢查名稱與表列名稱相同

FileStream stream = 
    File.Open(Server.MapPath("~/App_Data/YoutubeVideo/" + fileName), 
    FileMode.Open, FileAccess.Read); 

IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); 
excelReader.IsFirstRowAsColumnNames = true; 
DataSet result = excelReader.AsDataSet(); 
excelReader.Close(); 

dt = result.Tables[0]; 
dt = dt.Rows.Cast<DataRow>() 
      .Where(row => !row.ItemArray.All(field => field is System.DBNull)) 
      .CopyToDataTable(); 

預先感謝幫助....

回答

3

要檢查的數據複製到數據集之前,使用excelReader.GetName(0)獲得第一列的名稱。

編輯:

看來你正在使用Excel Data Reader這顯然沒有實現從IDataReader中的所有方法。

由於這不是一個完全實現的數據提供者,所以在加載到DataTable之後必須檢查名稱。

在這種情況下,您可以使用if (dt.Columns[0].ColumnName == "Name")

+0

無法獲取?>>>> ........ – Arun

+0

對不起,您必須更加具體。該解決方案沒有工作或什麼? – Natan

+0

雖然嘗試異常將捕獲..「指定的方法不支持。」 – Arun