首页 > 解决方案 > 使用 EPPlus 在列上添加过滤器

问题描述

我想将带有条件的过滤器添加到由“YES”和“NO”值填充的列中。该条件将向我显示带有 YES 的行并隐藏该列中带有 NO 的行。

我尝试将下一个代码与我已经拥有的用于创建 excel 文件的代码一起使用。

private static async Task ValueFilter(string connectionString, ExcelPackage p)
    {
        var ws = p.Workbook.Worksheets.Add("ValueFilter");
        ExcelRangeBase range = await LoadFromDatabase(connectionString, ws);

        range.AutoFilter = true;
        var colCompany = ws.AutoFilter.Columns.AddValueFilterColumn(0);
        colCompany.Filters.Add("Walsh LLC");
        colCompany.Filters.Add("Harber-Goldner");
        ws.AutoFilter.ApplyFilter();
        range.AutoFitColumns(0);
    }

这是我已经拥有的代码,但不包含任何过滤器。

private static byte[] CreateExcelFile(string FileName, DataTable DataTable, string WorkSheet, string Title, string Author)
{
    var File = new FileInfo(FileName);
    try
    {
        using (var package = new ExcelPackage(File))
        {
            ExcelWorksheet workSheet = package.Workbook.Worksheets.Add(WorkSheet);
            workSheet.Cells["A1"].LoadFromDataTable(DataTable, true);
            workSheet.Cells.Style.VerticalAlignment = ExcelVerticalAlignment.Justify;
            workSheet.Cells.AutoFitColumns(10, 75);
            package.Workbook.Properties.Title = Title;
            package.Workbook.Properties.Author = Author;
            package.Workbook.Properties.Author = Author;
            return package.GetAsByteArray();
        }
    }
    catch (Exception)
    {
        throw;
    }
}

那么如何结合这两个代码,以便在生成我的 excel 文件时有一个过滤器?或者有没有更简单的方法来使用 epplus 过滤列?

标签: c#sql-serverepplusepplus-4

解决方案


推荐阅读