savao
Март 18, 2014 16:33:51
Добрый день.
В проекте нужно генерировать xls файлы по содержимому БД. Нашел для этого библиотеку xlwt, все устраивало полностью пока не уперся в проблему - как сделать формат ячейки таким, чтобы размеры ячейки подстраивались под содержимое? Т.е. мне надо чтобы ячейка растягивалась в ширину и, если все равно мало, растягивалась и в высоту и при этом содержимое шло в несколько строк.
Документации по библиотеке практически нет. Смотрел в примерах на гитхабе, там подобной задачи не нашел. Написал в группу на гугле, в которой обсуждается работа этой библиотеки, но мое сообщение даже пока не выложили в доступ (не прошло премодерацию). Может тут кто подскажет?
Или, может быть, какой-то более удобный инструмент для решения моей задачи?
noob_saibot
Март 18, 2014 17:03:16
A style – also known as an XF (extended format) – is an XFStyle object, which encapsulates the formatting applied to the cell and its contents. XFStyle objects are best set up using the easyxf function. They may also be set up by setting attributes in Alignment, Borders, Pattern, Font and Protection objects then setting those objects and a format string as attributes of an XFStyle object.
Из документацииНо мне, кажется, проще в созданном xls => Ctrl+A => Перенос слов, правда если файлов много…
savao
Март 18, 2014 17:19:28
Я не понял, это вы к чему?
То что там написано, я знаю. Я читал доку и смотрел примеры.
У меня вопрос как сделать то что мне нужно.
Трогать xls после создания я не могу. Так как я его вообще получать не буду. Он будет сразу уходить по email.
noob_saibot
Март 18, 2014 18:03:38
Человек выложил программу там абсолютно все естьТак же есть примеры которые идут в комплекте с модулем:
row_styles.py
col_width.py
savao
Я не понял, это вы к чему?
К тому что все делается через стайл. И значит вы не знали документацию => не смогли найти пример. Стоит только
услышать что вам говорят, а не просто
слушать.
savao
Март 18, 2014 18:07:52
То что это делается через стили, я и так понимаю, просто не мог понять, как это сделать.
В указанных вами примерах того что мне надо нет.
А вот в проге этой ща попробую. Спасибо. Там все доступно, вроде расписано.
savao
Март 18, 2014 19:04:57
Спасибо. Вроде помогло.
Единственное, что я не понял, как чтобы и ширина столбцов растягивалась, какой параметр выбрать.
Я поставил:
alignment.horz = xlwt.Alignment.HORZ_DISTRIBUTED
alignment.vert = xlwt.Alignment.VERT_JUSTIFIED
У меня получилось что высота растягивается, а ширина у всех столбцов неизменная. Пробовал и другие варианты, но всегда одно и то же. Либо же ячейки начинают растягиваться, а не столбцы.
4kpt_II
Март 18, 2014 21:00:04
Не xlwt единым

Есть еще XlsWriter. Там очень хорошая и понятная документация. В документации просто бессовестная куча примеров и описаний. Каждый метод описывается очень и очень подробно. Если здесь у Вас не получится, то можете глянуть как альтернативный вариант.
P.S. Если нужна будет документация - пишите…
savao
Март 18, 2014 21:04:53
Ага, спасибо, почитаю.
savao
Март 18, 2014 21:07:33
Нет.
Вы знаете, я ошибся, там xlsxWriter. Не дадите ссылочку на xlswriter? А то я его и на pypi не нашел.
4kpt_II
Март 18, 2014 21:10:00
Как это не нашли?
Ну вот же она….
Там же есть переход на документацию.
Есть еще у меня документация в pdf, я даже не знаю, совпадает ли она