1. Доброе утро, товарищи!
    Опять мучаю все своими вопросами. На этот раз ищу средств отчетности, желательно с выгрузкой в excel, openoffice и т.п. Конечно гугл мне в помощь, но может кто уже имел дело с САБЖем?
    Спасибо!
  2. Пока нашел что читать эксель можно с помощью xlrd, а писать с помощью xlwt. Но вот досада, кажется нельзя читать-модифицировать-писать, а без этой цепочки не сделать удобную отчетность на основе шаблонов. :(
  3. ziro-on-ya

    05.01.2010

    3 ↑
    0 ↓
    Я обычно делаю так - составляю эксель документ по нужной форме и сохраняю его как веб архив (*.mht). Поскольку майкрософтский вебархив это просто текстовый файл в формате rfc822 то дальше беру какой-нить движок шаблонов для веба и его прикручиваю с нужными вставками.

    Там правда есть несколько тонкостей - я обычно меняю кодировку на utf-8 (ЕМНИП ее нужно в 2-х местах переписать внутри файла - в Content-Encoding заголовка документа и в html-части) и переформатирую документ на предмет удаления знаков "=" в местах переноса строк.

    Не то, чтобы совсем честно, но в принципе для достаточно простых случаев проходит.

    Правда при открытии такого документа всегда будет появляться окно типа "Выберите формат файла". И если отдаете через веб надо mime прописывать как для Excel 2003, иначе не откроет.

    С документами OpenOffice.org даже проще - это, если грубо, зазипованные архивы с xml-документом + картинки.

    Технология в принципе такая-же - создать нужный документ - разархивировать его на составляющие а дальше прикрутить нужный шаблонный движок. После обработки шаблона не забудьте обратно все собрать в архив.

    Ну а если захотите в pdf-файле отдавать, то ПМСМ самый простой способ - это pdflatex использовать. Правда там придется LaTeX изучить для правильного оформления отчета.
  4. Ferroman

    05.01.2010

    0 ↑
    0 ↓
    Может ReportLab подойдёт?
  5. Нет, мне чисто в эксель сохранять. Чтобы юзеры могли потом редактировать без проблем.
  6. Ferroman

    05.01.2010

    0 ↑
    0 ↓
    Кстати, довольно странно что нельзя "читать-модифицировать-писать". С чего такая уверенность?
    Я только что поспотрел в туториал - не вижу особых препятствий.
  7. Есть пакет xlutils, он позволяет сделать такую штуку.
  8. xlutils это всего лишь обертка над xlwt и xlrd, к слову сказать оба они довольно неплохи и скорее всего покроют ваши потребности.
  9. Дело дрянь! xlrd читает далеко не все! Нет картинок и формул, а для отчетов это смертельно (логотипы, подписи, бланки). xlutils тоже не копирует картинки.
    Вот вам блеск и нищета OpenSource'a.
  10. Вот вам блеск и нищета OpenSource'a.

    А есть закрытые реализации с таким функционалом?

  11. Полно. Я даже пользовался одной из них.
    http://spreadsheetgear.com/
    http://www.syncfusion.com/products/reporting-edition/xlsio
    http://www.gemboxsoftware.com/GBSpreadsheet.htm
    Причем могут работать без установленного офиса и без OLE.
  12. astur.net.ru

    06.01.2010

    0 ↑
    0 ↓

    Вот вам блеск и нищета OpenSource'a.

    Зря вы приплетаете идеологию к этому вопросу. Тут всё намного прозаичнее: сопрягая опенсорс с экселем каждый вменяемый программист хоть раз себя спросит, а не проще ли обойтись без экселя. В случаях, когда не проще, условия работы таковы, что хочется взять денег и утешиться, а уж тут какой опенсорс...

    Есть масса альтернатив... нет, не экселю, но использованию экселя, и если они не подходят - это указывает на упёртых заказчиков или корпоративных нанимателей, а для таких опенсорс не пишут.

    И тем не менее есть xlwt и xlrd. Вот это скорее блеск, чем нищета, если учитывать все условия.

  13. Вот поэтому там где крутятся деньги процветает ASP.NET, а Django остается бедным студентам работающим за тарелку супа.
  14. igorekk

    06.01.2010

    2 ↑
    0 ↓
    Там где крутятся деньги (в нашей стране) процветает выбор отнюдь не по здравому смыслу.

    UPD. Когда будет открыт формат Excel'я, тогда и появятся нормальные парсеры не от Microsoft'а. А пока - продолжаем жрать кактус.

    PS. Я вообще на работе генерю Excel очен извращённо: программно создаю файл на VBA, который потом скармливается cscript.exe :) Но к Python это не имеет никакого отношения.
  15. Иван Сагалаев

    06.01.2010

    1 ↑
    0 ↓

    Зря вы приплетаете идеологию к этому вопросу.

    Вот именно. Давайте вздохнём и оставим эту часть дискуссии в стороне. Вадим слишком упорно провоцирует всех на флейм, по-моему.

  16. Вот будет жесть если мне придется самому поддерживать все 3 этих библиотеки. Авторы походу на них забили.
  17. Ferroman

    06.01.2010

    1 ↑
    2 ↓
    Тролль уходи.
  18. Не уверен насчет xlrd, но вот xlwt точно умеет и картинки и формулы.
  19. Полно. Я даже пользовался одной из них.

    А как их использовать в обычном питоне?

  20. Кроме того: ведь бывает же ещё и 2007-ой эксель, а там тоже zipped xml формат, ситуация по-моему аналогична ситуации с OO.o. Так что ещё неплохо бы знать версию Excel-я, под которую разрабатывается софт, и программное окружение: если 2003, то политикой партии могут быть везде установлены пакеты совместимости с 2007-ым экселем или ODF.

  21. Итак, некоторые факты:
    0. Софт пишу исключительно кроссплатформенный. Должна быть совместимость с: OpenOffice 3, MS Office >= 2003, Firefox 3, Opera 9.
    1. Формат 2007-го экселя хоть и является xml разложенным по папкам, но не поддается простому прогону шаблонным движком. Хотя он легко читаем человеком, но по устройству много сложнее BIFF8 (бинарный формат экселей с 97-2003).
    2. Всего BIFF есть 6 версий. Они описаны на 90% в спецификациях OpenOffice. Получены реверсинжинирингом сообщества. Спецификации легко нагуглить "BIFF8 specification".
    3. Общее описание 25 стр + 250 стр конкретика. Файл xls очень сложен, он имитирует файловую систему со своими таблицами секторов, каталогами, потоками и т.п. Структуры сложны, многовложенны и запутанны. Так что авторы xlrd/wt действительно молодцы.
    4. Полноценных форматов заменяющих xls нет. Везде есть существенные потери.
    5. Сохранять в html не годится потому как там много потерь + он не открывается нигде кроме IE и MS Office.

    Боюсь советы мне мало помогут. Нужно либо искать движок на другом языке либо писать свой.
  22. ziro-on-ya

    11.01.2010

    0 ↑
    0 ↓
    POI не подойдет?
  23. У POI нет порта на питон. :(((
    Кстати я сейчас использую именно Apache POI, только сервер отчетности пишу на java чтобы потом вызвать из питона.
  24. Ринат Измаилов

    12.01.2010

    3 ↑
    0 ↓
    Когда была необходимость сделать odt, doc, pdf. Был взят за основу odt и запускался openoffice демоном. Подготавливался и отдавался консольно демону odt файл на переконвертацию (примеров для питона куча). Может стоит попробовать такой вариант?
  25. На безрыбье как говорится и OpenOffice как MS Excel :)
    Обязательно исследую эту возможность.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.