ExcelDataReader FilterColumn 用法
ExcelDataReader FilterColumn usage
我正在尝试 return 一个数据集 return 第一行作为 header 行(这是有效的),并从数据中过滤掉整列取决于他们的专栏 header.
ExcelDataReader 3.4.0
介绍了我正在尝试使用的 FilterColumn
回调选项。
下面是我的AsDataSet
电话
var ds = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
{
// Gets or sets a value indicating whether to use a row from the
// data as column names.
UseHeaderRow = true,
// Gets or sets a callback to determine which row is the header row.
// Only called when UseHeaderRow = true.
ReadHeaderRow = (rowReader) => {
// F.ex skip the first row and use the 2nd row as column headers:
rowReader.ToString();
},
FilterColumn = (rowReader, columnIndex) => {
return //if header == "string" filter out entire column
}
}
});
上面,当我尝试查看列的行、索引对并测试它是否包含短语时,它 return 无论如何。在这种情况下 FilterColumn
的正确用法是什么?
Link 到 github : https://github.com/ExcelDataReader/ExcelDataReader/tree/v3.4.0
将headers放入ReadHeaderRow
的列表中,检查FilterColumn
中的索引:
var headers = new List<string>();
ds = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true,
ReadHeaderRow = rowReader => {
for (var i = 0; i < rowReader.FieldCount; i++)
headers.Add(Convert.ToString(rowReader.GetValue(i)));
},
FilterColumn = (columnReader, columnIndex) =>
headers.IndexOf("string") != columnIndex
}
});
真的很简单!就这样使用吧:
FilterColumn = (rowReader, colIndex) =>
rowReader[colIndex].ToString() != "string"
或
FilterColumn = (rowReader, colIndex) =>
!rowReader[colIndex].ToString().Contains("string")
我正在尝试 return 一个数据集 return 第一行作为 header 行(这是有效的),并从数据中过滤掉整列取决于他们的专栏 header.
ExcelDataReader 3.4.0
介绍了我正在尝试使用的 FilterColumn
回调选项。
下面是我的AsDataSet
电话
var ds = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
{
// Gets or sets a value indicating whether to use a row from the
// data as column names.
UseHeaderRow = true,
// Gets or sets a callback to determine which row is the header row.
// Only called when UseHeaderRow = true.
ReadHeaderRow = (rowReader) => {
// F.ex skip the first row and use the 2nd row as column headers:
rowReader.ToString();
},
FilterColumn = (rowReader, columnIndex) => {
return //if header == "string" filter out entire column
}
}
});
上面,当我尝试查看列的行、索引对并测试它是否包含短语时,它 return 无论如何。在这种情况下 FilterColumn
的正确用法是什么?
Link 到 github : https://github.com/ExcelDataReader/ExcelDataReader/tree/v3.4.0
将headers放入ReadHeaderRow
的列表中,检查FilterColumn
中的索引:
var headers = new List<string>();
ds = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true,
ReadHeaderRow = rowReader => {
for (var i = 0; i < rowReader.FieldCount; i++)
headers.Add(Convert.ToString(rowReader.GetValue(i)));
},
FilterColumn = (columnReader, columnIndex) =>
headers.IndexOf("string") != columnIndex
}
});
真的很简单!就这样使用吧:
FilterColumn = (rowReader, colIndex) =>
rowReader[colIndex].ToString() != "string"
或
FilterColumn = (rowReader, colIndex) =>
!rowReader[colIndex].ToString().Contains("string")