Форум сайта python.su
1
Я думал для приготовления отчетов. А чем вообще отчеты можно делать, в каком виде выводить их?
Офлайн
253
ingfa_19811. Много чем можно делать отчеты. У нас практически все документы с названием на титульной странице “Отчет” на конечной стадии делаются LaTeX.
А чем вообще отчеты можно делать, в каком виде выводить их?
noob_saibotЭто при изготовлении документов не пойдет. Отчеты идут пачками, иногда в несколько десятков штук, идут в разные организации, идут с интервалом в несколько месяцев. От них требуется строгий единообразный стиль, соответствующий требованиям ГОСТ и нормоконтроля разных организаций. Сегодня вы нажмете 5 кнопок, а через пару месяцев напряженного труда 4 и получите возврат документов по формальному не соответствию требованиям нормоконтроля с переносом сроков этапов, задержкой выплат, лишением премий ….
Нажать 5 кнопок, нежели код писать
Отредактировано doza_and (Июнь 3, 2014 20:26:41)
Офлайн
1
Самый простой небольшой отчет у меня. С шапкой и данными. Но к сожалению экзелем я не могу полностью удовлетворить свои потребности.
А можно мне ссылок примеров каких нибудь отчетов в виде html и pdf?
Офлайн
253
LaTeX это если надо качество. НО!! технология можно сказать отртогональна MS Office.
ставите miktex
http://miktex.org/download
а потом :) компилируете документ командой pdflatex.
Примеры:
http://www.latextemplates.com/
Вообще принято писать свои стили, но можно и в один файл извратиться запихнуть.
Файл текстовый. Данные можно задать программой, а стиль - шаблонами латеха.
Отредактировано doza_and (Июнь 3, 2014 22:21:41)
Прикреплённый файлы:
b.tex (1,9 KБ)
Офлайн
1
Попробую разобраться. Спасибо
Офлайн
253
LaTeX это довольно сложный способ. Может проще будет генерировать html при помощи шаблонизаторов. Если вы владеете Python то будет просто освоить Mako. http://docs.makotemplates.org/en/latest/
Офлайн
1
Я поискал по мако нет практически информации на русском. Не могли бы вы скинуть мне примеров самых простых?
Офлайн
253
можете смотреть примеры на сайте. Опишу только принцип использования.
Допустим Вам надо сделать массу документов программно.
1 Берете GUI редактор, делаете документ-шаблон.
2 Сохраняете в текстовом виде (html, latex)
3 полученный текст переносите в программу в виде строки.
4 В этом тексте делаете разметку. ${name} для переменных которые будут программно меняться %for для циклов и т.п. см по документации Mako. Это творческая фаза - обобщение исходного документа.
5 Запускаете в цикле Template(tpl).render(data=data,auth=u“Иванов”) подставляя нужные аргументы.
6 для конвертации в pdf возможно потребуется вызвать постпроцессор (pdflatex,html2pdf и т.п.)
#!/usr/bin/env python # -*- coding: utf-8 -*- from mako.template import Template tpl=u""" <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1251"> </head> <body lang="ru-RU"> <h1>Отчет</h1> <table style="width:300px" border="1"> %for i,d in enumerate(data): <tr> <td>${i}</td> <td>${d}</td> %endfor </table> Выполнил Иванов </body> </html> </html>""" data=[1,2,3] print Template(tpl).render(data=data,auth=u"Иванов")
Отредактировано doza_and (Июнь 4, 2014 20:16:44)
Офлайн
1
Все понятно кроме этого, что такое data=data и auth=u“Иванов?
doza_and
data=data,auth=u“Иванов”)
Отредактировано ingfa_1981 (Июнь 4, 2014 21:53:33)
Офлайн
1
как пронумеровать страницы в экзель файле, для вывода на печать, если я пишу в один лист..
wb.get_sheet(0).set_header_str('') wb.get_sheet(0).set_footer_str('&P')
Офлайн