我有一个从excel读取值并插入到table中的代码。我选择第一行作为表的列名。我想检查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();
提前感谢您的帮助......
答案 0 :(得分:3)
要在将数据复制到数据集之前进行检查,请使用excelReader.GetName(0)
获取第一列的名称。
编辑:
您似乎正在使用Excel Data Reader,它显然没有实现IDataReader中的所有方法。
由于这不是完全实现的数据提供者,因此在加载到DataTable后,您必须检查名称。
在这种情况下,您可以使用if (dt.Columns[0].ColumnName == "Name")
。