鱼C论坛

 找回密码
 立即注册
查看: 119|回复: 1

[已解决]openpyxl问题

[复制链接]
发表于 2024-3-29 08:45:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助各位大神

这个代码如下
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)
最佳答案
2024-3-29 08:45:56
这是因为在openpyxl库中,工作簿(Workbook)对象是由sheet组成的,而不是直接由单元格组成的。所以在使用for循环时,你需要先指定要遍历的工作表(sheet),然后才能访问每个单元格的值。

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

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

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

  1. import openpyxl
  2. reb = openpyxl.load_workbook("营业收入.xlsx")
  3. res = reb.active  # 获取当前活动的工作表对象
  4. for row in res:
  5.     for a in row:
  6.         print(a.value)
复制代码


希望能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-29 08:45:56 | 显示全部楼层    本楼为最佳答案   
这是因为在openpyxl库中,工作簿(Workbook)对象是由sheet组成的,而不是直接由单元格组成的。所以在使用for循环时,你需要先指定要遍历的工作表(sheet),然后才能访问每个单元格的值。

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

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

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

  1. import openpyxl
  2. reb = openpyxl.load_workbook("营业收入.xlsx")
  3. res = reb.active  # 获取当前活动的工作表对象
  4. for row in res:
  5.     for a in row:
  6.         print(a.value)
复制代码


希望能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 14:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表