Уведомления

Группа в Telegram: @pythonsu

#1 Май 24, 2015 02:32:22

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Работа с файлами xls (Excel) - какие библиотеки изучать?

Если нужны только данные, т.е. содержание ячеек, то можно обойтись малой кровью

import pyexcel
import pyexcel.ext.xls
all_data = pyexcel.get_records(file_name='file.xls')
Полученная all_data это список словарей - оч просто работается с таким представлеием данных. С сохранением в новый xls файл также проблем не должно возникнуть, см. документацию.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#2 Май 28, 2015 12:58:34

cf4
Зарегистрирован: 2015-04-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с файлами xls (Excel) - какие библиотеки изучать?

Добрый день.
При использовании xlwt возникли проблемы: при записи в файл xls сбиваются строки, файл записывается с ошибками, появляются какие-то нечитаемые символы.
Если просто для теста записываю следующее, то никаких ошибок не возникает. Все сохраняется и отображается корректно:

from xlwt import *
wb=Workbook()
ws=wb.add_sheet('new')
i=0
for row in range(100):
    i+=1
    ws.write(i,0,row)
wb.save('new.xls')

Но когда я начинаю писать в xls данные из базы данных, начинаются вышеописанные проблемы.
Уже пробовал приводить все получаемые из БД значения к типу string, обрезать возможные пробельные символы и символы перевода строки методом strip(). Но результат от этого не меняется.

Еще столкнулся с проблемой записи в xls при помощи модуля xlwt значений типа timedelta.

Кстати, пробовал юзать модуль pyexcel, проблема от того не решилась.
В какую сторону можно копнуть? А то уже голову себе поломал.

Офлайн

#3 Май 28, 2015 15:45:38

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Работа с файлами xls (Excel) - какие библиотеки изучать?

Вы должны определить в каких данных возникают ошибки. Без этого никак не получится найти корень “вселенского зла”.

Офлайн

#4 Май 28, 2015 21:51:22

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Работа с файлами xls (Excel) - какие библиотеки изучать?

Могу посоветовать посмотреть пакет pandas. Он позволяет проводить экспорт в xls



Офлайн

#5 Май 29, 2015 12:19:21

cf4
Зарегистрирован: 2015-04-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с файлами xls (Excel) - какие библиотеки изучать?

Вы должны определить в каких данных возникают ошибки. Без этого никак не получится найти корень “вселенского зла”.
Однозначно знаю, что при записи в xls списка, содержащего переменные типа timedelta, возникают такие ошибки. Но как увидел позже на stackoverflow, модуль xlwt некорректно работает с объектами типа timedelta.
После этого пробовал из свойства seconds объекта timedelta вычислить часы, минуты и секунды в виде простых целочисленных переменных. При записи все равно коряво отображается в xls.
Иногда и при экспорте простых строковых переменных, типа ФИО, типа datetime или time, могут возникать такие ошибки.

Могу посоветовать посмотреть пакет pandas. Он позволяет проводить экспорт в xls
Пролистал документацию, но что-то ничего не увидел про экспорт в excel.


И что самое интересное и странное одновременно, эта корявость не постоянна, иногда бывает экспорт проходит без ошибок и все отображается корректно.

Отредактировано cf4 (Май 29, 2015 12:21:24)

Офлайн

#6 Май 29, 2015 12:44:21

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Работа с файлами xls (Excel) - какие библиотеки изучать?

cf4
Именно из-за этих косяков я пересел на XlsxWriter…

Офлайн

#7 Май 31, 2015 19:38:11

boligolov
От: СПб
Зарегистрирован: 2014-10-03
Сообщения: 51
Репутация: +  1  -
Профиль   Отправить e-mail  

Работа с файлами xls (Excel) - какие библиотеки изучать?

cf4
Попробуйте библиотеку xlwings.

Офлайн

#8 Июнь 3, 2015 06:22:18

cf4
Зарегистрирован: 2015-04-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с файлами xls (Excel) - какие библиотеки изучать?

4kpt_III
Спасибо огромное за рекомендацию! Поставил XlsxWriter, заменил в строке импорта старый модуль на новый и даже код толком править не пришлось.
С необходимыми мне типами работает на ура! Отображается все корректно. +Большие возможности по форматированию содержимого.
В общем оч счастлив )

P.S. Жаль, что раньше не наткнулся на эту библиотеку, хотя вроде столько всего разного по этой теме пересмотрел. Сэкономил бы себе огромное количество нервов и времени…

boligolov
Спасибо за рекомендацию, пока буду пользоваться вышеописанной библиотекой, всем устраивает, да и методы и свойства все знакомые.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version