PHPSpreadsheet - 在 excel 工作表中包含 "format as table" 的多个表

PHPSpreadsheet - Multiple tables with "format as table" in excel worksheet

我尝试在一个工​​作表中包含多个格式化的 table。该模板类似于以下示例:Template

table 的样式使用 table 格式模板。

如果我运行代码:

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档。

如果我尝试手动设置 table 的样式,我会 运行 遇到自动过滤器的问题。好像只能设置一个过滤范围。我尝试了以下代码:

$ageSheet =$spreadsheet->getSheet(0);
$ageSheet->setAutoFilter('A3:B10');
$ageSheet->setAutoFilter('D3:E9');
$ageSheet->setAutoFilter('A17:B24');
$ageSheet->setAutoFilter('D17:E23');

只会设置最后一个范围。

我的问题是:

  1. 是否可以使用 PHPSpreadsheet 在工作表中包含多个 table?
  2. 如何实现上面显示的这种输出?

版本

在MS excel中只能设置一个真正的过滤器。要在工作表上有多个,您必须使用格式模板。格式模板使用 pivot tables 来实现多过滤器行为。

PHP 电子表格使用 table 过滤并每次使用 setAutoFilter 方法覆盖过滤。这意味着每个工作表只能有一个。

目前 PHP 电子表格中不支持枢轴 tables。

目前无法在一个工作表中包含更多已过滤的 table。