PHP Com Excel应用过滤器

时间:2018-05-09 12:07:27

标签: php excel web ms-office

我正在使用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,但我无法得到它。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

好的想通了,我不得不传递额外的参数:

define('xlAnd', 1);

$sheet->range("AS1")->AutoFilter(45, '<>', xlAnd, '> 0');