当它到达python的excel文件的末尾时退出while循环

嗨,我是新的python,并尝试一些代码,使我的工作更容易。 所以这里是我的代码

counter = 0 while True: row_values = worksheet.row_slice(counter+1,start_colx=0, end_colx=4) row['Dealer'] = int(row_values[0].value) row['Name'] = str(row_values[1].value) row['City'] = str(row_values[2].value) counter += 1 if not row['Dealer']: break 

我试图打破while循环行['Dealer']为空,即到达Excel文件的末尾。 但似乎没有办法。 它不断给IndexError:列表索引超出范围 。 一些帮助,将不胜感激。 谢谢

您好我编辑我的代码如下:

  counter = 0 while True: row_values = worksheet.row_slice(counter+1,start_colx=0, end_colx=30) row['gg'] = worksheet.cell_value(1+counter,1).strip() if not row['gg']: break row['Dealer'] = int(row_values[0].value) row['Name'] = str(row_values[1].value) row['City'] = str(row_values[2].value) counter += 1 

但是错误仍然是一样的! 帮助将不胜感激。

问题 :当row ['Dealer']为空,即到达excel文件的末尾时,打破while循环。

您可以使用worksheet.nrows获取行的结尾,例如:

 import xlrd book = xlrd.open_workbook("myfile.xls") sh = book.sheet_by_index(0) print("Sheetname:{0} Rows:{1} Columns:{2}". format(sh.name, sh.nrows, sh.ncols)) # Iterate all Rows row_value = {} for rx in range(sh.nrows): print(sh.row(rx)) row_value['Dealer'] = sh.cell_value(rowx=rx, colx=0) row_value['Name'] = sh.cell_value(rowx=rx, colx=1) row_value['City'] = sh.cell_value(rowx=rx, colx=2) # Break before end of Rows at first Empty Cell if row_value['Dealer'] == '': break 

pandas图书馆是使用Excel的绝佳select。

用pip安装pandas。

 pip install pandas 

安装xlrd(需要使用Excel文件)。

 pip install xlrd 

从那里你可以阅读Excel电子表格以下。

 import pandas as pd df = pd.read_excel('your_excel.xlsx') 

df现在是一个DataFrame对象。 您可以使用可用的pandas工具分析和转换数据。 read_excel()的完整文档。

Interesting Posts