Объединение нескольких файлов Excel и сохранение листов застревает во втором файле
У меня есть несколько сотен листов Excel с несколькими листами, которые я пытаюсь объединить в один большой файл с сохранением всех листов. Названия листов и заголовки всех столбцов идентичны и расположены в одинаковом порядке.
Когда я запускаю приведенный ниже код, он создает новый файл и открывает его, и правильно копирует в первый файл в папке. Затем он открывает второй последовательный файл и останавливается - он не записывает никаких данных в новый объединенный файл, просто оставляет этот файл открытым и завершает работу.
Есть идеи? Я не могу понять, что заставило бы это остановиться:
import os
import win32com.client as win32
#We'll start with combining all of the RavenWeb files into a single Master file
path = 'Z:/zzz/myFiles/'
#fileName = input("merge")
#mergedFileName = fileName + ".xlsx"
try:
# Initializing the Excel Com app
xlapp = win32.gencache.EnsureDispatch('Excel.Application')
# Assign constants
xlPasteValues = -4163; lPastFormats = -4122; xlWorkbookDefault = 51
# Create new workbook (prompt if it already exists)
newBook = xlapp.Workbooks.Add()
newBook.SaveAs(Filename = 'myMergedFile.xlsx', FileFormat = xlWorkbookDefault)
# Loop through all the Raven Web Workbooks
xlFiles = [f for f in os.listdir(path) if f.endswith('.xlsx') or f.endswith('.xls')]
for wb in xlFiles:
xlwb = xlapp.Workbooks.Open(os.path.join(path, wb))
# Loop through every worksheet, copying to new worksheet
for xlsh in xlwb.Worksheets:
newSheet = newBook.Worksheets.Add()
newSheet.Name = xlsh.Name
newBook.Save()
newSheet.Move(After = newBook.Worksheets(newBook.Worksheets.Count))
xlsh.Cells.Copy(newSheet.Cells)
newSheet = None
xlwb.Close(False)
xlwb = None
# Removing "Sheet 8" and launching to screen
newBook.Worksheets('Sheet8').Delete()
newBook.Save()
xlapp.Visible = True
except Exception as e:
print(e)
finally:
# Release resources
xlsh = None; newSheet = None;
xlwb = None; newBook = None; xlapp = None