Ошибка файла: данные могут быть потеряны при предоставлении гиперссылок - PullRequest
0 голосов
/ 20 декабря 2018

Я пишу код для генерации Excel, используя Spreadsheet :: WriteExcel.Я хочу записать данные в ячейки и дать гиперссылку на них.Я это сделал.Но при открытии файла отображается предупреждение о том, что данные файла могут быть потеряны.

$Log_Sheet->write(12,0,'AA',$ERR_DESCR_Format );
$Log_Sheet->write_url(12, 0,  'internal:sheet3!A1'  );

Я хочу написать содержимое и предоставить ссылку без предупреждения.Как это сделать?

1 Ответ

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

Spreadsheet :: WriteExcel, как ни крути, не обновлялся уже несколько лет, и, насколько мне известно, он поддерживает только расширение .xls до Office 2007.Я действительно рекомендую вам обновить до Excel :: Writer :: XLSX, который является невероятным обновлением McNamara к стандартному формату открытого XML (xlsx).

Так что я не могу сказать наверняка, потому что эта ошибка делаетне происходит в Excel :: Writer :: XLSX, но моя первоначальная теория заключается в том, что вы записываете два разных значения в одну и ту же ячейку (12, 0), поэтому одно по существу перекрывает другое - отсюда и предупреждение.

При обновлении до Excel-Writer предупреждение должно исчезнуть.Что еще более важно, если вы хотите гиперссылку, вы включаете ссылку и понятное описание в один и тот же вызов:

$worksheet->write_url(12, 0, 'internal:Sheet3!A1', 'Click Here!');

Я думаю, что метод write того стоит, он правильно интерпретирует это какссылка:

$worksheet->write(12, 0, 'internal:Sheet3!A1', 'Click Here!');

- РЕДАКТИРОВАТЬ 21/12/2018 -

Если вы хотите сделать гиперссылку на объединенную ячейку, один из способов сделать это - использовать функцию гиперссылки в Excel:

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