私はCOMでExcelを開いていますが、うまく機能していますが、同じ列に2つのフィルターを同時に適用するのに問題があります。コードは次のとおりです。
$excel = new COM("excel.application") or die("Unable to instanciate excel");
$excel->Visible = 1;
$excel->DisplayAlerts = 1;
$wb = $excel->Workbooks->Open($dataFile);
$sheet = $wb->Worksheets(1);
// apply filters
$sheet->range("AS1")->AutoFilter(45, "<>"); // works with single filter
ただし、同じ列に2つのフィルターを同時に適用する場合、機能しません。
$sheet->range("AS1")->AutoFilter(45, "<> AND > 0"); // DOES NOT WORK
私の推測では、代わりに AND
上記の文のリテラル文字列として、実際のExcel定数を使用する必要があります Excel.XlAutoFilterOperator.xlAnd
しかし、私はそれを得ることができません。
どんな助けでも大歓迎です。
回答:
回答№1は0わかりました。追加のパラメーターを渡す必要がありました。
define("xlAnd", 1);
$sheet->range("AS1")->AutoFilter(45, "<>", xlAnd, "> 0");