Domanda

I'm new to python (and to programming in general).

I am having a problem using xlrd, xlwt and xlutils for accessing an xlsx workbook (it is a common question but i did not find any solution for me).

Should I change my package for py-excel? In that case, which one?

Here is my code:

import xlrd
import xlwt
from xlutils.copy import copy as xlutils_copy

rd = xlrd.open_workbook("x:/PROJECTS/Papers/2014_Pasture/a.xlsx")
rdsh = rd.sheet_by_name("FR_PASTURE")

wrb = xlutils_copy(rd)
ws = wrb.get_sheet_by_name("FR_PASTURE")

And the error I am receiving:

Traceback (most recent call last):
  File "X:\PROJECTS\Papers\2014_Pasture\AdjustXLSStats.py", line 28, in <module>
    wrb = xlutils_copy(rd)
  File "C:\Python27\lib\site-packages\xlutils-1.7.0-py2.7.egg\xlutils\copy.py", line 19, in copy
    w
  File "C:\Python27\lib\site-packages\xlutils-1.7.0-py2.7.egg\xlutils\filter.py", line 937, in process
    reader(chain[0])
  File "C:\Python27\lib\site-packages\xlutils-1.7.0-py2.7.egg\xlutils\filter.py", line 68, in __call__
    filter.cell(row_x,col_x,row_x,col_x)
  File "C:\Python27\lib\site-packages\xlutils-1.7.0-py2.7.egg\xlutils\filter.py", line 573, in cell
    wtrow.set_cell_number(wtcolx, cell.value, style)
  File "build\bdist.win-amd64\egg\xlwt\Row.py", line 203, in set_cell_number
    self.__adjust_bound_col_idx(colx)
  File "build\bdist.win-amd64\egg\xlwt\Row.py", line 78, in __adjust_bound_col_idx
    raise ValueError("column index (%r) not an int in range(256)" % arg)
ValueError: column index (256) not an int in range(256)

Version of xlutils installed : 1.7.0 OS: windows 8 excel: office 20113

È stato utile?

Soluzione

xlrd, xlwt, and xlutils are for accessing xls files, and have not been updated for use with xlsx files, which results in your multiple errors.

As a workaround, there is now a Python library openpyxlwhich can easily read and write Excel xlsx/xlsm/xltx/xltm files.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top