7

C# を使用して、Windows フォーム ベースのアプリケーションでデータ テーブルを Excel にエクスポートしています。FilterList には以下の値があります

string[] FilterList = new string[] {"Red", "Blue"};

しかし、「青」でフィルタリングされた値しか得られません。以下は、列の1つにフィルターを適用している部分的なコードです。フィルターしようとしている列には、2つだけを選択したい7つの異なる値があります。

Microsoft.Office.Interop.Excel.Application app = new
Microsoft.Office.Interop.Excel.Application();   
        app.Visible = false;

        Workbook wb = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);   
        Worksheet ws = (Worksheet)wb.ActiveSheet;

       // Some business logic to fill the excel.............

        Range firstRow = (Excel.Range)ws.Rows[1];
        firstRow.Activate();
        firstRow.Select();
        firstRow.AutoFilter(5, FilterList.Count > 0 ? FilterList :
        Type.Missing,Excel.XlAutoFilterOperator.xlAnd, Type.Missing, true);

私はここで間違って何をしていますか、どんな助けでも

4

1 に答える 1

11

では、どうぞ:

Range の Autofilter メソッドの 3 番目のパラメーターは XlAutoFilterOperator を受け入れます。単一の基準オブジェクトを使用しているが複数の基準があるため、xlFilterValues代わりに変更しました。xlAnd以下は、フィルターに 2 つの値を選択させるために行ったコードの変更です。

Range.AutoFilter(5, FilterList.Count > 0 ? FilterList.ToArray() : Type.Missing,
Excel.XlAutoFilterOperator.xlFilterValues, Type.Missing, true);

出典:SocialMSDN

他のSOユーザーに役立つことを願っています。

于 2013-03-12T09:00:03.950 に答える