LINUX.ORG.RU

Python, xlrd, чтение форматирования, тупняк

 , ,


0

1

Надо прочитать xls файл с форматированием и в 1251

from xlrd import open_workbook
wb = open_workbook('1.xls', formatting_info=True, encoding_override="cp1251",)
Выдает ошибку:
Traceback (most recent call last):
  File "parse.py", line 17, in <module>
    wb = open_workbook('1.xls', formatting_info=True, encoding_override="cp1251",)
  File "/usr/lib/pymodules/python2.6/xlrd/__init__.py", line 387, in open_workbook
    bk.get_sheets()
  File "/usr/lib/pymodules/python2.6/xlrd/__init__.py", line 849, in get_sheets
    sht = self.get_sheet(sheetno)
  File "/usr/lib/pymodules/python2.6/xlrd/__init__.py", line 839, in get_sheet
    sh.read(self)
  File "/usr/lib/pymodules/python2.6/xlrd/sheet.py", line 991, in read
    self.merged_cells, data, 0, bv, addr_size=8)
  File "/usr/lib/pymodules/python2.6/xlrd/biffh.py", line 308, in unpack_cell_range_address_list_update_pos
    assert addr_size == 6
AssertionError
ЧЯДНТ?



Последнее исправление: CYB3R (всего исправлений: 1)

Ответ на: комментарий от linuxnewb

Ага. Если без 1251, то:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 6: ordinal not in range(128)
Ну и если без formatting_info то все читается.

spdooh
() автор топика
Ответ на: комментарий от ggrn

import xlrd
filename = 'tst.xls'
book = xlrd.open_workbook(filename)
sheet = book.sheet_by_index(0)

ну так-то все работает...
Мне надо кроме значений еще и цвета ячеек прочитать...

spdooh
() автор топика
Последнее исправление: spdooh (всего исправлений: 1)
Ответ на: комментарий от ggrn

Гугл спрашивал, гугл не знает(
Питон не может прочитать файл, если formatting_info=1
Как вариант - дело в старом xlrd (0.6.1-2), но по докам фича formatting_info в этой версии как раз уже появилась.
*Попробую дома, может действительно xlrd черствый.

spdooh
() автор топика
Ответ на: комментарий от Umpi

Действительно черствый(
Не заметил, как убунта 11.04 стала старой :(

spdooh
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.