我尝试在一个工作表中包含多个格式化的表。该模板如下例所示:Template
表使用表格式模板设置样式。
如果我运行代码:
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
$inputFileName = 'template/Age.xlsx';
$inputFileType = 'Xlsx';
if (!file_exists($inputFileName)) {
echo('File ' . $inputFileNameShort . ' does not exist');
}
$reader = IOFactory::createReader($inputFileType);
$spreadsheet = $reader->load($inputFileName);
$writer = new Xlsx($spreadsheet);
$writer->save(Age.xlsx);
$spreadsheet->disconnectWorksheets();
unset($spreadsheet);
该格式未覆盖到新的Age.xlsx文件中。
如果我尝试手动设置表格样式,则会遇到AutoFilter问题。似乎只能设置一个过滤器范围。我尝试了以下代码:
$ageSheet =$spreadsheet->getSheet(0);
$ageSheet->setAutoFilter('A3:B10');
$ageSheet->setAutoFilter('D3:E9');
$ageSheet->setAutoFilter('A17:B24');
$ageSheet->setAutoFilter('D17:E23');
仅设置最后一个范围。
我的问题是:
版本
答案 0 :(得分:0)
在MS excel中,只能设置一个真实的过滤器。要在工作表上放置多个内容,您必须使用格式模板。格式模板使用数据透视表来实现多重过滤器行为。
PHPspreadsheet使用表过滤,每次使用setAutoFilter方法覆盖该过滤。这意味着每个工作表只能有一个。
目前,PHPspreadsheet中不支持数据透视表。
目前,在一个工作表中不能再包含一个已过滤的表。