Python 如何迭代工作簿中的工作表,openpyxl
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18495672/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to iterate over worksheets in workbook, openpyxl
提问by Mike
I've been using the openpyxl module to do some processing on some .xlsx files. I've been trying to figure out how to iterate over sheets in a workbook. I'm not sure if I can get it figured out. I've tried the 2 codes below which both return empty results. My .xlsx file has about 20 sheets, so something should return.
我一直在使用 openpyxl 模块对一些 .xlsx 文件进行一些处理。我一直在试图弄清楚如何迭代工作簿中的工作表。我不确定我是否能弄清楚。我已经尝试了下面的 2 个代码,它们都返回空结果。我的 .xlsx 文件有大约 20 张,所以应该返回一些东西。
The one thing I couldn't find on the internet, is how to set a workbook to an actual workbook. Usually I am writing to a workbook, so I just initialize it by setting a variable to en empty workbook workbook = Workbook()
but in this case, I am unsure if I can open a workbook by doing workbook = Workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")
我在互联网上找不到的一件事是如何将工作簿设置为实际工作簿。通常我正在写一个工作簿,所以我只是通过将一个变量设置为空工作簿来初始化它,workbook = Workbook()
但在这种情况下,我不确定是否可以通过执行打开工作簿workbook = Workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")
If anyone can identify what it is I am doing wrong, I would appreciate it.
如果有人能确定我做错了什么,我将不胜感激。
Here is my code:
这是我的代码:
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
采纳答案by alecxe
Open the workbook via load_workbook()and iterate over worksheets
:
通过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
回答by kashaziz
To print titles of all sheets in a workbook:
要打印工作簿中所有工作表的标题:
from openpyxl import load_workbook
wb = load_workbook(r"C:\Excel\LOOKUP_TABLES_edited.xlsx")
print(wb.sheetnames)
回答by Tony S
Here's one if you need active worksheets for your code
如果您的代码需要活动工作表,这里有一个
for sheet in wb:
ws = wb[sheet]
print('Now in sheet: ' + ws.title)