Вот мой процесс:
Шаг 1: Открыть файл1
Шаг 2: Загрузить лист1
Шаг 3: Загрузить файл вывода
Шаг 4: Создать новый лист в файле вывода
Шаг 5: Скопируйте содержимое ячейку за ячейкой из шага 2, чтобы вставить лист, созданный на шаге 4
Шаг 6: Повторите процесс 'n' количество раз
Я создал сценарий Python для добиться этого, но программа безумно медленно. Займет час, чтобы закончить. Вот фрагмент кода, который выполняет копирование.
import xlsxwriter as xlsx
import openpyxl as xl
for i in range (6,k):
#get the file location/name from source file
filename = sheet.cell_value(i,3)
#get the sheetname from the sheet read in the above statement
sheetname = sheet.cell_value(i,4)
#print the file name to verify
print(filename)
#get output sheet name
outputsheetname = sheet.cell_value(i,5)
#load the source workbook
wb1 = xl.load_workbook(filename=filename,data_only = True)
#get the index of sheet to be copied
wb1_sheet_index = wb1.sheetnames.index(sheetname)
#load the sheet
ws1 = wb1.worksheets[wb1_sheet_index]
#load the output workbook
wb2 = xl.load_workbook(filename=output_loc)
#create a new sheet in output workbook
ws2 = wb2.create_sheet(outputsheetname)
#print(ws2,":",outputsheetname)
for row in ws1:
for cell in row:
ws2[cell.coordinate].value = cell.value
wb2.save(output_loc)
wb2.save(output_loc)
Имя файла, имя листа и имя выходного листа взяты из мастер-листа Excel, где я храню расположение файла и имена листов. Я загружаю этот файл до этого l oop.
Кроме того, я хочу, чтобы содержимое ячейки было скопировано. Если исходный лист имеет какую-либо формулу, я не хочу, чтобы это было скопировано. И если в ячейке A5 есть значение 500, я хочу, чтобы это значение находилось в ячейке A5 на выходном листе.
Возможно, я подхожу к этому неправильно. Любая помощь приветствуется.