Игнорировать определенные столбцы от загрузки в DataSet с помощью ExcelDataReader? - PullRequest
0 голосов
/ 24 июня 2018

Я использую ExcelDataReader для загрузки данных в DataSet, который в конечном итоге будет загружен в DataGrid в WPF. У меня есть определенные столбцы с заголовками SLNO и FY, которые я не хочу включать. Как я могу игнорировать эти столбцы, используя FilterColumn упомянутый здесь ?

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

Вы можете обработать событие AutoGeneratingColumn:

private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    e.Cancel = e.PropertyName == "SLNO" || e.PropertyName == "FY";
}
0 голосов
/ 19 января 2019

Вот как FilterColumn работает

using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
    List<string> skipColumns = new List<string> { "SLNO", "FY" };
    using (var reader = ExcelReaderFactory.CreateReader(stream))
    {
        var result = reader.AsDataSet(new ExcelDataSetConfiguration()
        {
            ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
            {
                UseHeaderRow = true,
                FilterColumn = (rowReader, columnIndex) =>
                {
                    return !skipColumns.Contains((rowReader[columnIndex].ToString()));
                }
            }
        });
    }
}
0 голосов
/ 24 июня 2018

Если вы хотите отфильтровать эти столбцы во время отображения, используйте следующий код:

    gridview.Columns["ColumnName"].Visible = false;

Или:

   DataView view = new DataView(DataSet.table[0]);
   DataTable table2 = view.ToTable(false, "FirstColumn", "SecondColumn",      "ThirdColumn");

   GridDataView.DataSource = Table2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...