Python Проблемы с анализом xlrd - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь прочитать файл .xls. Когда я пытаюсь открыть его с помощью XLRD, я получаю следующее. Лист отлично открывается в Excel ... но я не могу найти подробностей об этой ошибке:

Traceback (most recent call last):
File "./art.py", line 7, in <module>
  workbook = xlrd.open_workbook("/opt/zir/data/input/May2020executions.xls")
File "/usr/local/lib/python3.6/site-packages/xlrd/__init__.py", line 157, in open_workbook ragged_rows=ragged_rows,
File "/usr/local/lib/python3.6/site-packages/xlrd/book.py", line 88, in open_workbook_xls ragged_rows=ragged_rows,
File "/usr/local/lib/python3.6/site-packages/xlrd/book.py", line 632, in biff2_8_load
cd = compdoc.CompDoc(self.filestr, logfile=self.logfile)
File "/usr/local/lib/python3.6/site-packages/xlrd/compdoc.py", line 90, in __init__
raise CompDocError('Expected "little-endian" marker, found %r' % mem[28:30])

xlrd.compdoc.CompDocError: Expected "little-endian" marker, found b'\xff\xfe'

Любая помощь была бы замечательной. Я здесь потерялся. Если я загружу его в Excel и сохраню в формате .xlsx, он будет работать нормально ..... но я думал, что XLRD читает файл .xls ......

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Если вам не обязательно использовать XLRD, альтернативой является чтение файла в Pandas

import pandas as pd

workbook = pd.read_excel("/opt/zir/data/input/May2020executions.xls")
0 голосов
/ 07 августа 2020
import xlrd

file_path = r'test.xlsx'


def read_file():
    table = xlrd.open_workbook(file_path)
    sheet = table.sheet_by_name('Sheet1')
    print(table.sheet_names())
    print(sheet.ncols)
    print(sheet.nrows)
    print(sheet.cell(1, 0).value)
    for row in range(0, sheet.nrows):
        for col in range(0, sheet.ncols):
            print(sheet.cell(row, col).value, end='------')
        print('')


if __name__ == '__main__':
    read_file()

Вы можете попробовать это.

...