Perl-скрипт для гиперссылки, чтобы открыть файл на основе имени файла в каждой ячейке

Я разработал perl-скрипт для поиска совпадающих строк в текстовых файлах и скопировал его в электронную таблицу. Я также включил имя текстового файла в электронную таблицу для соответствующей совпадающей строки. Теперь я хочу гиперссылку, чтобы открыть файл, щелкнув имя файла в каждой ячейке.

Любая помощь приветствуется! Я не большой программист... Спасибо!


person rocketman2698    schedule 29.01.2013    source источник
comment
С каким форматом электронной таблицы вы имеете дело?   -  person Borodin    schedule 29.01.2013
comment
Я имею дело с электронными таблицами в openoffice.org на Linux-машине (CentOS 5.6)   -  person rocketman2698    schedule 29.01.2013
comment
Какую библиотеку вы используете для написания электронной таблицы?   -  person StarPinkER    schedule 29.01.2013
comment
Я использую модуль Spreadsheet::WriteExcel для взаимодействия с новой книгой Excel.   -  person rocketman2698    schedule 29.01.2013


Ответы (1)


Вот несколько примеров использования Spreadsheet::WriteExcel.

# External link to a local file
$worksheet->write('B2', 'external:Italy.xls');

# External link to a local file with worksheet
$worksheet->write('B3', 'external:Italy.xls#Sales!B3');

# External link to a local file with worksheet and alternative string
$worksheet->write('B4', 'external:Italy.xls#Sales!B4', 'Link');

# External link to a local file with worksheet and format
$worksheet->write('B5', 'external:Italy.xls#Sales!B5', $format);

# External link to a remote file, absolute path
$worksheet->write('B6', 'external:c:/Temp/Asia/China.xls');

# External link to a remote file, relative path
$worksheet->write('B7', 'external:../Asia/China.xls');

# External link to a remote file with worksheet
$worksheet->write('B8', 'external:c:/Temp/Asia/China.xls#Sales!B8');

# External link to a remote file with worksheet (with spaces in the name)
$worksheet->write('B9', q{external:c:/Temp/Asia/China.xls#'Product Data'!B9});

Вы можете увидеть напишите API для получения дополнительной информации.

person StarPinkER    schedule 29.01.2013
comment
Спасибо ..приведенные выше примеры хорошо подходят для работы с отдельными ячейками, чтобы открыть внешний файл. Поскольку я буду иметь дело с более чем 200 файлами, я ищу больше автоматических процессов. Ниже приведен пример формата электронной таблицы. (Ячейки столбца A столбца B извлекаются из имени файла в столбце C) столбец A столбец B столбец C один один один.txt два два два.txt и т. д. ... теперь я хочу щелкнуть ячейку one.txt, чтобы открыть файл из текущего каталога - person rocketman2698; 29.01.2013
comment
Затем вам нужно добавить цикл и автоматически добавить эти 200+ файлов в вашу электронную таблицу. - person StarPinkER; 29.01.2013
comment
Спасибо Джермейн за помощь. Я могу открыть файл с примерами, которые вы показали выше. Я ввожу имя файлов с помощью сценария, так как имена файлов уже есть в одном столбце электронной таблицы, я хочу гиперсвязать все ячейки в этом конкретном столбце. Например, в $worksheet-›write('B2', 'external:Italy.xls'); вместо «внешний: Италия.xls» я хочу присвоить ячейке динамическое имя файла - person rocketman2698; 30.01.2013
comment
Вы имеете в виду, что вам нужно изменить существующий Excel? - person StarPinkER; 30.01.2013
comment
Нет.. В $worksheet-›write('B2', 'external:Italy.xls') вместо (статическое имя файла)Italy.xls я хочу открыть файлы, имена которых уже присутствуют в листе Excel, созданном в форме perl scipt . Короче говоря, в одном из столбцов уже написаны имена файлов, я хочу сделать на них гиперссылку - person rocketman2698; 01.02.2013
comment
Итак, вы хотите просто прочитать имена файлов из столбца в переменную X и изменить столбец с помощью $worksheet-›write('B2', 'external:X'), верно? - person StarPinkER; 01.02.2013
comment
Спасибо .. да, я хочу сделать гиперссылку на все ячейки в столбце - person rocketman2698; 01.02.2013