PHPSpreadsheet/XLSX:如何在LibreOffice中默认隐藏注释



我正试图使用PHPSpreadsheet在XLSX工作表中创建一个注释。一切都很好,只是默认情况下似乎没有办法隐藏注释——当我在LibreOffice中打开生成的Excel文件时,所有注释都会显示出来。Comment类确实有一个setVisible方法,但它似乎被忽略了。

我通过Composer使用PHPSpreadsheet 1.9.0。

完整示例:

require ('vendor/autoload.php');
use PhpOfficePhpSpreadsheetIOFactory;
use PhpOfficePhpSpreadsheetSpreadsheet;
$excel = new Spreadsheet();
$ws = $excel->getActiveSheet();
$ws->setCellValue('A1', 'Hello');
$ws->getComment('A1')->getText()->createTextRun("This is a comment");
$ws->getComment('A1')->setVisible(false);
$writer = IOFactory::createWriter($excel, 'Xlsx');
$writer->save('test-comments.xlsx');

A1中的注释(理论上(应该从隐藏开始,但默认情况下会显示。

编辑-一些附加信息。注释在Excel中开始时是隐藏的,因此这可能表明LibreOffice存在一些问题。然而,如果你在LibreOffice中隐藏评论,保存回XLSX并重新打开,评论一开始确实是隐藏的-所以很明显,PHPSpreadsheet写评论的方式和LibreOffice期望的方式之间存在某种不兼容。我已经针对LibreOffice Calc(#128447(提交了一个错误。

如果有人发现这一点,这已被确认为LibreOffice中的一个错误。有关详细信息,请参阅链接的错误报告。

最新更新