Храните последний лист всех .xlsx в одной папке - PullRequest
0 голосов
/ 06 июля 2018

У меня есть несколько .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 голосов
/ 06 июля 2018

Ваш отступ неверен. В 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)
...