我有一个使用ExcelReaderFactory
从Excel导入数据到DB的过程。但是当有空行/列时,我们面临问题。下面是我的原始代码:
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(fileContent);
excelReader.IsFirstRowAsColumnNames = true;
DataSet result = excelReader.AsDataSet();
DataTable dataTable = result.Tables[0].Rows
字符串
它产生了两个问题:
1.如果end中有空行,它们将在datatable中。
1.如果最后有空列,它们将在datatable中。
有没有什么方法可以同时删除空行和列。我可以用下面的代码从数据表中删除空行
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(fileContent);
excelReader.IsFirstRowAsColumnNames = true;
DataSet result = excelReader.AsDataSet();
DataTable dataTable = result.Tables[0].Rows
.Cast<DataRow>()
.Where(row => !row.ItemArray.All(field => field is DBNull ||
string.IsNullOrWhiteSpace(field as string ?? field.ToString())))
.CopyToDataTable();
return dataTable;
型
但它不会删除空列。有更好的方法吗?
如何删除空列?
请参考下面的图片。x1c 0d1x
2条答案
按热度按时间vuktfyat1#
你可以使用这个扩展:
字符串
如果你想从一个给定的索引开始,把它传递给方法。
polhcujo2#
要回答完整的问题,包括删除空白行,请使用此扩展名:
字符串
要排除用户定义的列,请在列数组上的
.ToArray()
之前添加此Where
:型