LINUX.ORG.RU

Редактирование (то есть не просто чтение или создание) .xls файла из perl или php


0

0

Уважаемый ALL!

Появилась вот такая задача, не отстают от меня недруги, требуют решения и угрожают физической расправой )))

Есть экселевский файл с неким шаблоном накладной или чего-то там (с дизайном и форматированием).
нужно его модифицировать.

то что я смотрел, всякие Spreadsheet::ParseExcel, Spreadsheet::WriteExcel как я понял не позволяют модифицировать данные, то есть один тупо их парсит, а другой тупо создаёт файл "с нуля".

Покопавшись я понял что наврядли удастся сделать красивый пайп из parseexcel в writeexcel.

Есть какие-нибудь идеи как решить эту задачу не прибегая к activex+vba+чёрти-что-на-виндовой-машине?

★★★

Парсить, изменять и писать заново:)

anonymous
()

Для PHP есть SimpleXML. Например с его помощью можно:

1. Загрузить файл.

2. Изменить название одного тега.

3. добавить аттрибут.

4. Сохранить XML обратно в тот же файл.

Устроит?

naryl ★★★★★
()

Посмотри Alfresco.

оно на джаве но смысл что можно запустить ОпенОффис в неком хитром режиме и рулять им через порт. Потребуются иксы, но можно обойтись фреймбуферными, что они и делают.

Хотя конечно решение получится небыстрое и требовательное.

roller ★★★
()
Ответ на: комментарий от naryl

Во первых XML тут не причем.

Во вторых simpleXML нифига ты не поменяешь )

roller ★★★
()

Попробуй jexcelapi в связке с Inline::Java.

amm ★★
()
Ответ на: комментарий от magellan

...поэтому должно запускаться и на linux машине. Создавать новые документы можно 100%

magellan
()

В свое время была похожая задача (экспорт в Excel из СУБД), поступили просто: создавался файл с расширением xls, внутри которого была обычная HTML табличка. Excel открывал на ура, без вопросов.

Т.е. в вашем случае можно попробовать читать XLS, менять что надо и записывать уже в HTML, но с расширением XLS.

saper ★★★★★
()

вот подобная проблема

Подобный вопрос был тут. http://www.opennet.ru/openforum/vsluhforumID9/6674.html Решение по редактированию пока не найдено. Даже интересно найти хотя бы кривой редактор. Т.е. например чтобы нельзя было менять формат ячеек и пр., чтобы файл не портился, ведь если число идёт двумя байтами или одним, его можно поменять и формат будет тот же.

anonymous
()

кажется, есть решение

Кажется я нашёл! вам нужен Spreadsheet::ParseExcel::SaveParser - Expand of Spreadsheet::ParseExcel with Spreadsheet::WriteExcel

http://search.cpan.org/~szabgab/Spreadsheet-ParseExcel-0.32/lib/Spreadsheet/P... А вот пример программы use strict; use Spreadsheet::ParseExcel::SaveParser; $oBook = Spreadsheet::ParseExcel::SaveParser::Workbook->Parse('Excel/Test97.xls'); my $oWs = $oBook->AddWorksheet('TEST1'); $oWs->AddCell(10, 1, 'New Cell'); $oBook->SaveAs('iftest.xls');

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.