Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Создание xls - файлов


Автор: Bulat 24.7.2009, 16:04
Возможно кто-то имеет опыт написания xls-файлов без использования сторонних(!) модулей(csv-файлы не в счет). Возможно использование xml, для решения данной задачи..

Хотелось бы узнать, насколько реально..

Или лучше "не изобретать велосипед, если это уже сделали за тебя" и установить модуль, что-нить типа Spreadsheet::WriteExcel ??

Автор: shamber 24.7.2009, 16:30
Bulat, я сейчас работаю над такой же проблемкой.
Решил остановиться на Excel 2003 xml.

я правда пока не тестировал производительность, но на глаз однозначно быстрее чем OLE и Spreadsheet::WriteExcel.


Логика следующая:
1 готовлю шаблон в Excel.
2 сохраняю в xml.
3 обработаваю smile

Вот это (3) самый интересный пункт smile Сейчас я парсю ручками smile Думаю попробовать XML:Xmllib.  

Автор: Bulat 24.7.2009, 16:38
Цитата(shamber @  24.7.2009,  16:30 Найти цитируемый пост)
Вот это (3) самый интересный пункт smile Сейчас я парсю ручками smile Думаю попробовать XML:Xmllib.   


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


Цитата(shamber @  24.7.2009,  16:30 Найти цитируемый пост)

1 готовлю шаблон в Excel.
2 сохраняю в xml.


А вот про это хотелось бы поподробнее.

Автор: shamber 24.7.2009, 16:48
Что там может быть подробнее smile



Цитата(shamber @  24.7.2009,  16:30 Найти цитируемый пост)
1 готовлю шаблон в Excel.

Открываете Excel создаете макет(рыбу)
http://ipicture.ru/Gallery/Viewfull/21256490.html

Цитата(shamber @  24.7.2009,  16:30 Найти цитируемый пост)
2 сохраняю в xml.

 Сохранить КАК
 ".xml"(Office2003) 
Таблица xml Office 2003 (Office2007).
http://ipicture.ru/Gallery/Viewfull/21256491.html

Затем парсите , правите,  сохраняете в ".xls" Excel его автоматически открывает smile



Автор: Bulat 24.7.2009, 17:05
Не совсем то, что мне нужно, хотя будет полезно для получения решения моей задачи.

Меня не устраивает лишь то, что сначала открывается сам эксель и в нем создается шаблон. Хотса все же начинать с абстрактной таблицы, которую нужно создать, и вот меня как раз интересовали премудрости описания электронных таблиц средствами xml...

А если чуть проще, то мне нужно некоторые данные из базы сохранить в виде excel-таблиц, в соотв. файле... Я могу с легкостью создать любой xml-файл, разметку, просто нужно научится создавать ее кошерно, чтоб сходилось с тем, что подходит для самого xls smile

Автор: shamber 24.7.2009, 18:34
ну, а что мешает глянуть внутрь xml, после создания? smile

там всего то <Row> да <Cells> smile

+ описания всяких хреновин, типа область печати и прочее smile, правда, оно занимает много места smile

Добавлено через 2 минуты и 52 секунды
Я решил использовать шаблон, чтобы не заморачиваться по поводу форматирования ячеек.

Добавлено через 3 минуты и 31 секунду
Да и правильнее, потому как отделяем код от данных smile

Автор: Bulat 27.7.2009, 15:51
Цитата(shamber @  24.7.2009,  18:34 Найти цитируемый пост)
Добавлено через 2 минуты и 52 секунды
Я решил использовать шаблон, чтобы не заморачиваться по поводу форматирования ячеек.

Добавлено через 3 минуты и 31 секунду
Да и правильнее, потому как отделяем код от данных smile 


Но теряем абстракцию...

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

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

А форматирование ячеек не такая уж и сложная задача в том плане, что "сложные" форматы практически не используются, а для простых решения тоже довольно тривиальны smile

Автор: shamber 27.7.2009, 22:52
шаблон, для меня, может я не совсем правильно высказался, необходим только с целью, не заморачиваться относительно форматирования ячеек. Мне нет нужны вникать в то, как это сделать. 
Сделал ячейку такой какой надо, пометил ее для себя, дальше просто копируешь ее в таблицу которую генеришь и все.

Автор: Bulat 28.7.2009, 10:07
Цитата(shamber @  27.7.2009,  22:52 Найти цитируемый пост)
шаблон, для меня, может я не совсем правильно высказался, необходим только с целью, не заморачиваться относительно форматирования ячеек. Мне нет нужны вникать в то, как это сделать. 


Во многом в этом и весь смысл заведенной мною темы. Есть еще более простые решения по этому поводу и на уровне csv-файлов. smile

Автор: shamber 29.7.2009, 19:29
Цитата(Bulat @  28.7.2009,  10:07 Найти цитируемый пост)
csv-файлов

меня лично ничем не вдохновили.

Автор: Bulat 30.7.2009, 12:21
Цитата(shamber @  29.7.2009,  19:29 Найти цитируемый пост)
меня лично ничем не вдохновили.


Скорость решения + нет необходимости в использовании дополнительных технологий кроме самого языка программирования. Причем решение не только тривиальных, но и задач "средней сложности", я бы сказал.

P.S. Как говорится все гениальное в простоте. smile Но иногда бывает нужно и что-то по сложнее smile

Автор: shamber 31.7.2009, 16:00
xml я обрабатываю регулярками smile

Цитата(Bulat @  30.7.2009,  12:21 Найти цитируемый пост)
дополнительных технологий 

никаких smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)