75278350@qq.com 发表于 2024-3-29 08:45:46

openpyxl问题

求助各位大神

这个代码如下
import openpyxl
reb = openpyxl.load_workbook("营业收入.xlsx")
res = reb["revenue"]
for row in res["A1":"A7"]:
    for a in row:
      print(a.value)

为什么不能改成
import openpyxl
reb = openpyxl.load_workbook("营业收入.xlsx")
res = reb["revenue"]
for a in res["A1":"A7"]:
      print(a.value)

FishC 发表于 2024-3-29 08:45:56

这是因为在openpyxl库中,工作簿(Workbook)对象是由sheet组成的,而不是直接由单元格组成的。所以在使用for循环时,你需要先指定要遍历的工作表(sheet),然后才能访问每个单元格的值。

你的第一个代码段工作正常,因为你先遍历了工作表,然后才能访问到单元格的值。

然而,你的第二个代码段尝试直接使用for循环遍历工作簿对象(Workbook),而不是工作表对象(Worksheet)。这将导致错误。

所以,正确的做法是遍历工作表对象(Worksheet),然后使用嵌套的for循环来遍历单元格,就像你第一个代码段一样。下面是修改后的代码:

import openpyxl
reb = openpyxl.load_workbook("营业收入.xlsx")
res = reb.active# 获取当前活动的工作表对象
for row in res:
    for a in row:
      print(a.value)

希望能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: openpyxl问题