Python .xlsx (Office OpenXML) читатель так же просто, как модуль CSV? - PullRequest
3 голосов
/ 06 июля 2010

Я знаю, что появляются некоторые читатели Python xlsx, но из того, что я видел, они не кажутся такими же интуитивными, как встроенный модуль csv.

Мне нужен модуль, которыйможно сделать что-то вроде этого:

reader = xlsx.reader(open('/path/to/file'))

for sheet in reader:
    print 'In %s we have the following employees:' % (sheet.name)
    for row in sheet:
        print '%s, %s years old' % (row['Employee'], row['Age'])

Есть ли такой ридер?

Ответы [ 2 ]

4 голосов
/ 07 июля 2010

xlrd имеет обработку xlsx для базового извлечения данных, используя те же API, что и для xls, в настоящий момент в альфа-тестировании.Пришлите мне личный e-mail, если хотите.

2 голосов
/ 06 июля 2010

Ну, может быть, не для формата xlsx, но, конечно, для xls. Возьмите xlrd отсюда:

http://www.python -excel.org /

Вот пример кода, чтобы понять, как легко работать с:

import xlrd

EMPLOYEE_CELL = 5
AGE_CELL = 6

reader = xlrd.open_workbook('C:\\path\\to\\excel_file.xls')
for sheet in reader.sheets():
    print 'In %s we have the following employees:' % (sheet.name)
    for r in xrange(sheet.nrows):
        row_cells = sheet.row(r)
        print '%s, %s years old' % (row_cells[EMPLOYEE_CELL].value, row_cells[AGE_CELL].value)

Если вы можете сохранить документы в формате xls, у вас все получится. Я не пробовал код выше, но это довольно близко, если не на 100% правильно. Попробуйте и дайте мне знать.

EDIT:

Полагаю, вы пытаетесь сделать это на компьютере, отличном от Windows. Возможно, вы сможете использовать что-то вроде PyODConverter для преобразования документа из xlsx в xls, а затем запустить его для преобразованного файла. Примерно так:

user@server:~# python DocumentConverter.py excel_file.xlxs excel_file.xls user@server:~# python script_with_code_above.py

Еще раз, не проверял его, но, надеюсь, он будет работать для ваших нужд.

...