Добавьте существующий лист в другую существующую книгу. openpyxl - PullRequest
0 голосов
/ 30 мая 2020

Я пытаюсь создать новый Excel, содержащий первую вкладку списка файлов Excel. Для этого я пытаюсь «скопировать-вставить» каждый лист в новую книгу, однако я еще не нашел, как это сделать.

Я пробовал следующее, но, конечно, строка wb.create_sheet(sheet) не работает не работает.

wb = Workbook('new.xlsx')

for i in range(len(file_list)):
    excel = load_workbook(file_list[i], read_only=False)
    sheet = excel[excel.sheetnames[0]]
    sheet.Name = tab_names_list[i]

    wb.create_sheet(sheet)


wb.save('new.xlsx')

В то же время замена wb.create_sheet(sheet) на wb.copy_worksheet(sheet) дает ошибку ValueError: Cannot copy worksheets in read-only or write-only mode

Какие функции openpyxl мне следует использовать?

1 Ответ

0 голосов
/ 30 мая 2020

Это может не сработать для вас, но это то, что я использую в аналогичном приложении. Для этого требуется pandas фреймов данных, я не уверен, используете вы их или нет.

file_list = [file_1, file_2]
sheet_names = ['file1_name', 'file2_name']

writer = pd.ExcelWriter("workbook_name.xlsx", engine='xlsxwriter')

for file, s_names in zip(file_list, sheet_names):
    file.to_excel(writer, sheet_name=s_names)
writer.save()

...