PHPSpreadsheet / XLSX: как скрыть комментарии по умолчанию в LibreOffice - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь создать комментарий на листе XLSX, используя PHPSpreadsheet. Все работает отлично, за исключением того факта, что, по-видимому, нет способа заставить комментарий начать скрытым по умолчанию - когда я открываю сгенерированный файл Excel в LibreOffice, отображаются все комментарии. Класс Comment имеет метод setVisible, но, похоже, его игнорируют.

Я использую PHPSpreadsheet 1.9.0 через Composer.

Полный пример:

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');

Комментарий в А1 должен (в теории) начинаться скрытно, но он показывается по умолчанию.

Редактировать - Дополнительная информация. Комментарии начинаются скрытыми в Excel, поэтому это может указывать на некоторую проблему с LibreOffice. Однако, если вы скрываете комментарий в LibreOffice, сохраняете его обратно в XLSX и снова открываете, комментарий действительно становится скрытым - так что, очевидно, это какая-то несовместимость между тем, как PHPSpreadsheet записывает комментарий, и тем, как LibreOffice ожидает его. Я подал ошибку в Libreoffice Calc ( # 128447 ).

1 Ответ

0 голосов
/ 30 октября 2019

В случае, если кто-то наткнется на это, это было подтверждено как ошибка в LibreOffice. Подробности см. В связанном отчете об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...