我正在使用com打开excel并且它正常工作但是我无法同时将两个过滤器应用于同一列。这是代码:
$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
但是,当我想同时将两个过滤器应用于同一列时,它不起作用:
$sheet->range("AS1")->AutoFilter(45, '<> AND > 0'); // DOES NOT WORK
我的猜测是,我不应该在上面的语句中使用AND
作为文字字符串,而应该使用实际的excel常量Excel.XlAutoFilterOperator.xlAnd
,但我无法得到它。
任何帮助将不胜感激。
答案 0 :(得分:0)
好的想通了,我不得不传递额外的参数:
define('xlAnd', 1);
$sheet->range("AS1")->AutoFilter(45, '<>', xlAnd, '> 0');