我使用xlrd,xlwt,openpyxl进行excel文件操作 我有下面的方法,它在文件夹中超过30个文件并更改文件中每行的特定列(某些文件有5,15,17等行)
上面的方法可以反复运行,每个文件都会相应更新。 但, 一旦我编辑了文件(任何一个文件,并且其中一个单元格中的编辑变化甚至可能很小(例如从A变为a),则文件不能被xlrd读取,而且我是获得以下例外。 知道为什么吗?
例外:
追踪(最近一次呼叫最后一次):
文件" /home/ohad/automationProj/automation-linux/0_master_code_prep.py" ;,第154行,
sanity_run_all_change()
文件" /home/ohad/automationProj/automation-linux/0_master_code_prep.py",第68行,在sanity_run_all_change中
ExcelWorkBook1 = open_workbook(config.STDFOLDER +'%s.xlsx'%suitename,on_demand = True)
文件" /usr/local/lib/python2.7/dist-packages/xlrd/ init .py",第422行,在open_workbook中
ragged_rows = ragged_rows,
文件" /usr/local/lib/python2.7/dist-packages/xlrd/xlsx.py" ;,第794行,在open_workbook_2007_xml中
x12sheet.process_stream(zflo,heading)
文件" /usr/local/lib/python2.7/dist-packages/xlrd/xlsx.py",第534行,在own_process_stream
self.do_dimension(ELEM)
文件" /usr/local/lib/python2.7/dist-packages/xlrd/xlsx.py",第568行,在do_dimension中
rowx,colx = cell_name_to_rowx_colx(last_cell_ref)
文件" /usr/local/lib/python2.7/dist-packages/xlrd/xlsx.py",第91行,在cell_name_to_rowx_colx中
断言0< = colx< X12_MAX_COLS
的AssertionError
代码:
def fullregression_run_all_change():
# FUll regression suites go over and change testes to Run
print "Go over Sanity suites and Change all Test to Run position"
ExcelWorkBook1 = open_workbook(config.UI_Suites_Location + 'STD_SUITES.xlsx', on_demand=True)
First_Sheet1 = ExcelWorkBook1.sheet_by_index(0)
Suite_List = []
for suitename in First_Sheet1._cell_values:
if suitename[1] == "Nightly Full Regression Run":
continue
else:
Suite_List.append(str(suitename[1]))
print "Full regression suites count is %s"%Suite_List.__len__()
for suitename in Suite_List:
ExcelWorkBook1 = open_workbook(config.STDFOLDER + '%s.xlsx'%suitename, on_demand=True)
First_Sheet1 = ExcelWorkBook1.sheet_by_index(0)
numberofrows=First_Sheet1.nrows
Startupdaterow=4
dest = config.STDFOLDER + suitename + ".xlsx"
wb = load_workbook(filename=dest)
ws = wb.get_active_sheet()
while Startupdaterow<=numberofrows:
ws.cell(row=Startupdaterow,column=8).value = 'RUN'
Startupdaterow +=1
wb.save(dest)
答案 0 :(得分:0)
在我的情况下,错误是
assert 1 <= nr <= self.utter_max_rows AssertionError
在Python的.xls
文件中。
访问此链接可查看我的答案,并在sheet.py
中更改MAX-COLUMNS
。
AssertionError with pandas when reading excel
我认为您的问题将得到解决...:)