我们如何获取文件夹中所有 Excel 文件的文件名、sheet 名称、最大行数和最大列数?

How can we get file name, sheet name, max rows, and max columns for all Excel files in a folder?

我正在尝试获取每个 Excel 文件中每个 sheet 的文件名、sheet 名称、最大行数和最大列数。我今天研究了如何使用 Python 清点文件夹中的 Excel 文件。我将下面的代码放在一起,它似乎让我得到了文件名和 sheet 名称,但它卡在了行和列上。据我所知,行和列是字符串,对吧。我正在尝试满足该要求,但这里似乎有些不对劲。谁能告诉我这里出了什么问题?

import openpyxl
import glob
import pandas as pd

inventory = []

all_data = pd.DataFrame()
path = '\Users\ryans\OneDrive\Desktop\sample\*.xlsx'
for f in glob.glob(path):
    print(f)
    inventory.append(f)
    theFile = openpyxl.load_workbook(f)
    sheetnames = theFile.active
    for sheet in sheetnames:
        print(sheet)
        inventory.append(sheet)
        row_count = str(sheet.max_row)
        col_count = str(sheet.max_col)
        inventory.append(row_count)
        inventory.append(col_count)

print(inventory)

要遍历工作簿中的工作 sheet,您应该使用 for sheet in theFile.worksheets。您当前的尝试实际上是遍历工作簿中的所有行,从活动 sheet.

开始

sheet.max_col也是错误的函数,使用sheet.max_column

所以你的工作代码现在是:

import openpyxl
import glob

inventory = []
path = '\Users\ryans\OneDrive\Desktop\sample\*.xlsx'
for f in glob.glob(path):
    # print(f)
    inventory.append(f)
    theFile = openpyxl.load_workbook(f)
    sheetnames = theFile.active

    for sheet in theFile.worksheets:
        # print(sheet)
        inventory.append(sheet)
        row_count = str(sheet.max_row)
        col_count = str(sheet.max_column)
        inventory.append(row_count)
        inventory.append(col_count)

print(inventory)