Question

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

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top