Есть ли какая-то конкретная причина, почему вы хотите сделать это с Python?
Excel может сделать большую часть этого сам с этим макросом VBA:
Sub CombineSheets()
'
' Add three identically-formatted sheets,
' putting the result into a fourth one, and then moving it to a new workbook.
'
Sheets(1).Copy After:=Sheets(3)
Sheets(4).Name = "Combined Counts"
Sheets(2).Select
Cells.Copy
Sheets(4).Select
Range("A1").Select
Selection.PasteSpecial Operation:=xlAdd
Sheets(3).Select
Cells.Copy
Sheets(4).Select
Selection.PasteSpecial Operation:=xlAdd
Sheets(4).Move
End Sub
это
- Делает полную копию первого листа, помещая его после третьего листа.
Новый лист можно впоследствии ссылаться как
Sheets(4)
.
Если первый лист называется « Passenger
, то новый лист первоначально будет называться « Passenger (2)
.
- Переименуйте новый лист
Combined Counts
.
- Скопируйте весь второй лист и вставьте его на новый лист, используя сложение.
(Это функция, к которой вы можете получить интерактивный доступ через «Вставить» → «Специальная вставка…», а затем выбрав «Добавить» в разделе «Операция».)
А затем повторите с третьим листом.
Нечисловые данные (т.е. текст) на втором и третьем листах игнорируются.
Если на первом листе есть текст в данной ячейке, этот текст будет сохраняться в результате, даже если на одном из других листов есть номер.
(Но это не должно быть проблемой, поскольку вы говорите, что листы идентичны по формату.)
- Отделите новую рабочую таблицу от книги, создав новую рабочую книгу.
Затем вы можете сохранить новую книгу и закрыть ее, добавив что-то вроде
Do
fName = Application.GetSaveAsFilename( _
FileFilter:="Excel Workbook (*.xlsx), *.xlsx")
Loop Until fName <> False
ActiveWorkbook.SaveAs Filename:=fName
ActiveWindow.Close
до End Sub
.
Или вы можете получить имя файла другим способом.