Как создавать внутренние ссылки с помощью JS-XLSX

Я пытаюсь создать документ XLSX Excel с помощью JS-XLSX и не могу найти способ создать эквивалент внутренней ссылки.

У меня есть эта сводная страница, на которой я хотел бы представить кликабельные ссылки, указывающие на другие листы.

введите здесь описание изображения

Я пробовал много комбинаций cell = {l: {Target: "..", Rel: {Target: "...", Type:"Internal"}}}, но это не работает. Он всегда заканчивается внешней гиперссылкой в ​​сгенерированном документе.

Я бы принял решение для XLSX.

Я использую JS-XLSX 0.10.4.


person gawi    schedule 13.06.2017    source источник


Ответы (2)


Вы можете использовать приведенную ниже команду, чтобы сделать гиперссылку.

cell.l = { Target:"#'" + cell.v + "'!A1", Tooltip:cell.v }

Это в любом случае добавит ссылку, однако это не отформатирует ячейку как ячейку гиперссылки. Вам нужно отформатировать его отдельно. Но если вы наведете курсор мыши, вы можете найти ссылку. Нажав на эту ячейку, вы попадете на соответствующий лист.

person Karpak    schedule 18.06.2017
comment
У меня это не работает в Excel 2007. Мне абсолютно необходимо что-то поставить перед #. - person gawi; 21.06.2017
comment
Вам не нужно ничего ставить перед #. Но вы должны отметить одну вещь: это не отформатирует вашу ячейку до синего цвета. Вы навели курсор мыши на эти ячейки и щелкнули? - person Karpak; 22.06.2017
comment
Excel 2007 отказывается открывать полученный файл XLSX, если я не укажу часть имени файла в ссылке. Другими словами, foobar.xlsx#'Section 1'!A1 работает, но не #'Section 1'!A1. - person gawi; 22.06.2017
comment
ммм, я не уверен насчет 2007 года. Я использую 2013 год, где он работает нормально. - person Karpak; 22.06.2017

Судя по всему, внутренние ссылки пока не поддерживаются (по состоянию на 0.10.5):

https://github.com/SheetJS/js-xlsx/issues/685

person gawi    schedule 22.06.2017