我正在尝试使用 openpyxl
从Excel文件中读取1列,直到它到达一个空单元格,然后它需要停止 . 但我没有让它发挥作用 . 到目前为止这是我的代码:
import openpyxl
import os
def main():
filePath = os.getcwd() + "\file.xlsx"
wb = openpyxl.load_workbook(filename=filePath, read_only=True)
sheet = wb["Sheet1"]
for row in range(sheet.max_row):
if(sheet.cell(row+1,1).value == None):
break
print(sheet.cell(row+1,1).value)
if __name__ == "__main__":
main()
但是这会导致以下错误:
回溯(最近一次调用最后一次):文件“someProgram.py”,第27行,在main()文件“someProgram.py”,第15行,在main if(sheet.cell(第1,1行).value ==无):文件“C:\ Python34 \ lib \ openpyxl \ worksheet \ worksheet.py”,第349行,单元格坐标= coordinate.upper() . replace('$','')AttributeError:'int'对象有没有属性'上'
4 回答
问题出在这一行:
对于一个参数函数,
sheet.cell
期望具有str
单元名称,例如A1
而不是int
类型 .您需要指定
row
和column
键,例如:如果指定
int
类型row
和column
变量我看到我能够使用相同的代码打印列中的所有值,但稍微修改到下面的行:(基本上,通过添加一个\来转义''字符
我自己创建了一个小的xlsx文件,只有一列用以下顺序填充整数:5,4,3,2,10和11.下面的代码似乎适用于我,至少对我来说:
输出:
如果我删除该列中的一个中间值,比如2,则循环停止,如下所示:
我希望这有助于解决您的问题 .
您可以使用在这种情况下更方便的迭代器 .