PHPSpreadsheet/XLSX: 如何在 LibreOffice 中默认隐藏评论
PHPSpreadsheet/XLSX: how to hide comments by default in LibreOffice
我正在尝试使用 PHPSpreadsheet 在 XLSX 工作表中创建评论。一切正常,除了似乎没有办法让评论开始默认隐藏 - 当我在 LibreOffice 中打开生成的 Excel 文件时,所有评论都会显示。 Comment
class 确实有一个 setVisible
方法,但它似乎被忽略了。
我正在通过 Composer 使用 PHPSpreadsheet 1.9.0。
完整示例:
require ('vendor/autoload.php');
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$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 中的错误。有关详细信息,请参阅链接的错误报告。
我正在尝试使用 PHPSpreadsheet 在 XLSX 工作表中创建评论。一切正常,除了似乎没有办法让评论开始默认隐藏 - 当我在 LibreOffice 中打开生成的 Excel 文件时,所有评论都会显示。 Comment
class 确实有一个 setVisible
方法,但它似乎被忽略了。
我正在通过 Composer 使用 PHPSpreadsheet 1.9.0。
完整示例:
require ('vendor/autoload.php');
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$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 中的错误。有关详细信息,请参阅链接的错误报告。