Объединение ячеек в Excel и предоставление гиперссылки с помощью Spreadsheet :: WriteExcel - PullRequest
0 голосов
/ 21 декабря 2018

Я использую Spreadsheet :: WriteExcel.Я хочу объединить две ячейки и дать гиперссылку на содержимое внутри объединенных ячеек.

Я пробовал вот так.

$Log_Sheet->merge_range('D2:E2','Home',$MergedFormat);
$Log_Sheet->write_url('D2','internal:sheet1!A1');

Это работает нормально, но когда я пытаюсь открыть файлотображается предупреждение «Ошибка файла: данные могут быть потеряны».Это происходит потому, что ячейка D2 перезаписывается.

Как объединить ячейки и дать гиперссылку за один вызов?

1 Ответ

0 голосов
/ 21 декабря 2018

Я не могу обещать, что это работает в Spreadsheet :: WriteExcel, но в Excel :: Writer :: XLSX.Я бы посоветовал вам попробовать его в Spreadsheet :: WriteExcel.

С объединенными диапазонами, как только вы объявляете формат, вам нужно продолжать использовать его для этого диапазона и никогда не использовать его для неслитых диапазонов.Итак, если вы возьмете свой код и добавите тег и объект формата:

$Log_Sheet->merge_range("D2:E2", 'Home', $MergedFormat);
$Log_Sheet->write_url('D2', 'internal:sheet1!A1', 'Click Me!', $MergedFormat);

Похоже, что он работает ... в Excel :: Writer :: XLSX.Извините, что продолжаю ссылаться на это.

В качестве альтернативы, согласно предыдущему сообщению ( Ошибка файла: данные могут быть потеряны при предоставлении гиперссылок ), вы также можете использовать встроенную функцию гиперссылки в Excel:

my $merged = $workbook->add_format();
$worksheet->merge_range("A10:A11",
  qq{=hyperlink("#'Sheet3'!A1","Click Here!")},
  $merged);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...