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