我一直在使用openpyxl模块对某些.xlsx文件进行一些处理。我一直在试图弄清楚如何迭代工作簿中的工作表。我不确定我能不能弄明白。我已经尝试了下面的两个代码,它们都返回空结果。我的.xlsx文件大约有20张,所以应该返回一些东西。
我在互联网上找不到的一件事是如何将工作簿设置为实际的工作簿。通常我写的是工作簿,所以我只是通过将变量设置为空工作簿workbook = Workbook()
来初始化它,但在这种情况下,我不确定是否可以通过workbook = Workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")
如果有人能够确定我做错了什么,我会很感激。
这是我的代码:
workbook = Workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")
for sheet in workbook.worksheets:
print sheet
# or
for sheet in workbook.worksheets:
print sheet.title
答案 0 :(得分:16)
通过load_workbook()打开工作簿,然后迭代worksheets
:
from openpyxl import load_workbook
wb = load_workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")
for sheet in wb.worksheets:
print sheet
答案 1 :(得分:0)
要打印工作簿中所有工作表的标题,请执行以下操作:
from openpyxl import load_workbook
wb = load_workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")
print(wb.sheetnames)
答案 2 :(得分:0)
如果您需要有效的工作表来编写代码,这就是一个
for sheet in wb:
ws = wb[sheet]
print('Now in sheet: ' + ws.title)
答案 3 :(得分:0)
我在整个“ workbook.active”方面有些挣扎,不知道如何解决它,所以我尝试了所有事情,这对我来说很有效!
for sheet in workbook.sheetnames[2:len(workbook.sheetnames)]:
ws = workbook[value]
for val in ws.iter_rows(min_row=11, max_row=21, min_col=2, max_col=10, values_only=True):
print(str(sheet) + " " + str(val))
这将从第三张纸开始打印纸名,因为这是我需要的,以及所有引用的单元格值。唯一的另一件事是这将打印一个列表,并且如果您要遍历每个值并提取“ 0s”或“ None”值,则需要另一个循环。希望这对其他人有帮助!