如何用Python for循环读取Excel指定列单元格?逐字符输出问题求助
问题根因
原有代码的for循环遍历对象是sheet.cell_value(rownum,2),此时rownum初始值为1,该语句只会返回第1行第2列单个单元格的字符串内容,字符串迭代默认遍历每个字符,循环内的rownum += 1不会改变循环的遍历对象,因此出现逐字符打印的结果。
修正方案
写法1:逐行遍历取值
import xlrd # 路径前加r标记为原始字符串,避免Windows路径反斜杠转义错误 location = r"C:\Users\user2\Desktop\Python\Other\blah.xls" workbook = xlrd.open_workbook(location) sheet = workbook.sheet_by_index(0) # 从第1行开始遍历到最后一行,sheet.nrows为表格总行数 for rownum in range(1, sheet.nrows): print(sheet.cell_value(rownum, 2))
写法2:直接提取指定列所有值再遍历(更简洁)
import xlrd location = r"C:\Users\user2\Desktop\Python\Other\blah.xls" workbook = xlrd.open_workbook(location) sheet = workbook.sheet_by_index(0) # 直接获取第2列从第1行开始的所有单元格值 col_2_values = sheet.col_values(2, start_rowx=1) for cell_value in col_2_values: print(cell_value)
内容的提问来源于stack exchange,提问作者Adarsh Deenadayalan
相关产品推荐
相关产品推荐

