将所有.xlsx的最后一个工作表保存在一个文件夹中

时间:2018-07-05 22:35:13

标签: python excel openpyxl

我的文件夹中没有几个.xlsx文件。每个文件包含30多个工作表。我正在尝试在每个文件(通常是每个文件的最后一张)中保留一个特定的工作表(名称相同)。

以下代码仅对文件夹中的一个文件有效;它不会通过每个人。

import openpyxl, glob

for file in glob.glob('*.xlsx'):
    wb = openpyxl.load_workbook(file)
for sheetName in wb.worksheets:
    if sheetName.title != 'abc':
        wb.remove(sheetName)
wb.save(file)

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您的缩进不正确。在Python中,缩进表示代码块的结束

import openpyxl, glob

# This loops through all of the workbooks
for file in glob.glob('*.xlsx'):
    wb = openpyxl.load_workbook(file)

# Now, once all of the workbooks have been looped through, only the last one is edited
for sheetName in wb.worksheets:
    if sheetName.title != 'abc':
        wb.remove(sheetName)
wb.save(file)

尝试一下

import openpyxl, glob

for file in glob.glob('*.xlsx'):
    wb = openpyxl.load_workbook(file)
    for sheetName in wb.worksheets:
        if sheetName.title != 'abc':
            wb.remove(sheetName)
    wb.save(file)