У меня есть различное количество входных документов .xlsx, которые содержат 12 листов (все листы имеют одинаковое имя в каждом документе .xlsx).Мне нужно объединить их в один документ .xlsx, сохранив при этом имена исходных листов, но данные всех документов для каждого листа добавляются к исходным листам.
Например, см. Мой исходный вывод:
И желаемый вывод:
Это мой текущий код:
def combine_sheets(self, inputFiles):
logging.info('combining input files to one spreadsheet')
'''
create a pandas excel writer using xlsxwriter as the engine
pandas and xlsxwriter will need to be installed on server running script
'''
outputFile = os.path.join(self.processingDir, 'combined_ncoa_report.xlsx')
writer = pandas.ExcelWriter(outputFile, engine='openpyxl')
df = pandas.DataFrame()
for inputFile in inputFiles:
logging.info('reading spreadsheet %s' % (os.path.split(inputFile)[-1]))
# read input xlsx to pandas dataframe
book = load_workbook(inputFile)
writer.book = book
writer.sheets = {ws.title: ws for ws in book.worksheets}
for sheetname in writer.sheets:
df.to_excel(writer,sheet_name=sheetname, startrow=writer.sheets[sheetname].max_row, index = False,header= False)
writer.save()
# closing writer
writer.close()
Функция создает файл, но каждый раз перезаписывает содержимое листа вместо добавления.Я не уверен, что мне не хватает.