繁体   English   中英

我想从同一文件 python 的不同工作表中获取一些数据

[英]I want to get some data from different sheet of the same file python

我想获取单个文件的一些数据,但是从不同的工作表中我尝试了下面的代码,但它只给出了第一张工作表的数据

from openpyxl import load_workbook

work = load_workbook(filename=r'the name of the file.xlsx',data_only=True)

for sheet in work.sheetnames[1:len(work.sheetnames)]:
    n = 3
    sheet1 = work[work.sheetnames[n]]
    for val in sheet1.iter_rows(min_row=9, max_row=14, min_col=6, max_col=8, values_only=True):
        print(str(sheet) + " " + str(val))
    n += 1

假设我们有一个 .xlsx 文件,其中包含 5 张名为sheet0, sheet1, sheet2..., sheet5

work.sheetnames为您提供所有工作表的列表['sheet0', 'sheet1', 'sheet2', 'sheet3', ..., 'sheet5']

当您使用:

for sheet in work.sheetnames[1:len(work.sheetnames)]:

表示您将从sheet1sheet5完成您的工作

之后你有:

    n = 3
    sheet1 = work[work.sheetnames[n]]

work.sheetnames[3]返回字符串'sheet3' ,因此变量sheet1在每次迭代中始终是work['sheet3'] 我认为这就是为什么您的结果没有按您希望的方式运行的原因。

下面的代码可能可以解决这个问题。

from openpyxl import load_workbook
work = load_workbook(filename=r'the name of the file.xlsx',data_only=True)

for sheet in work.sheetnames[1:len(work.sheetnames)]:
    sheet1 = work[sheet]
    for val in sheet1.iter_rows(min_row=9, max_row=14, min_col=6, max_col=8, values_only=True):
        print(str(sheet) + " " + str(val))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM