嗯,这实际上是我的主要问题的解决方法,即“忽略我的工作簿中的空白页”。我找到了一种方法来只打印那些非空的工作表名称。所以,现在我想将这些名称传递给我的工作簿,只访问那些工作表而不是wb
中的每一个工作表。 (我需要使用openpyxl
。)
我正在尝试以下但它不起作用:
wb = openpyxl.load_workbook("source_file.xlsx", data_only=TRUE)
for ws in wb.get_sheet_by_name(['Sheet1', 'Sheet2', 'Sheet4', 'Sheet5']):
for row in ws:
<do the necessary parsing operations here>
但这引发了以下错误:"Worksheet ['Sheet1', 'Sheet2', 'Sheet4', 'Sheet5'] does not exist."
如果我单独传递名称,那么它说:
TypeError: get_sheet_by_name() takes 2 positional arguments but 5 were given
有没有办法告诉它只能访问特定的纸张而不是wb
中的每张纸?或者更好,是否可以在解析.xlsx
工作簿时忽略所有空表?
您可以将工作表名称存储在列表中,然后遍历该列表以打开每个工作表:
import openpyxl
wb = openpyxl.load_workbook("source_file.xlsx", data_only=True)
sheets = ['Sheet1', 'Sheet2', 'Sheet4', 'Sheet5']
for sheet in sheets:
for row in wb[sheet]:
# <do the necessary parsing operations here>
请注意,您只需使用wb
从工作簿wb[sheetname]
访问工作表即可。 get_sheet_by_name()
已被弃用。见official documentation。