【问题标题】:How can we get file name, sheet name, max rows, and max columns for all Excel files in a folder?我们如何获取文件夹中所有 Excel 文件的文件名、工作表名称、最大行数和最大列数?
【发布时间】:2023-03-04 21:52:01
【问题描述】:

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

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)

【问题讨论】:

  • sheetnames = theFile.active 错误。

标签: python python-3.x pandas openpyxl


【解决方案1】:

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

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)

【讨论】:

  • 知道了!谢谢你给我看!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
  • 1970-01-01
  • 2015-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多