Как объединить 3 фала xls в один xlsx

Есть 3 файла xls - Hyundai.xls, nalichie_1_3.xls, peugeot_citroen.xls c данными, формат всегда одинаковый, необходимо из этих файлов скопировать столбцы B, E, F, H на один лист продолжая друг друга в один xlsx - general.xlsx (так как кол-во строк будет большое)

Вот что есть на данный момент, но это для одного файла, как добавить следом такие же данные из двух других файлов?

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import xlrd, xlwt, zipfile, zlib, xlsxwriter
import os

def freaks(in_filename=None, out_filename=None):
        if not os.path.isfile(in_filename):
            return None
        book = xlrd.open_workbook(in_filename, on_demand=True)
        bookfreaks  = xlsxwriter.Workbook('general.xlsx')
        worksheet = bookfreaks.add_worksheet('Sheet1')
        worksheet.write(0,0,'Артикул')
        worksheet.write(0,1,'Склад')
        worksheet.write(0,2,'Стоимость')
        worksheet.write(0,3,'Кратность заказа')
        

        sheet = book.sheet_by_index(0)
        i=0
        for row_index in range(sheet.nrows):
                if row_index < 1:
                        continue

                i = i + 1
                worksheet.write(i,0,sheet.cell(row_index, 1).value)  # Артикул
                worksheet.write(i,1,sheet.cell(row_index, 4).value)  # Склад
                worksheet.write(i,2,sheet.cell(row_index, 5).value)  # Стоимость
                worksheet.write(i,3,sheet.cell(row_index, 7).value)  # Кратность


        bookfreaks.close()
        print("Обработано %d строк\n" % i)  


freaks('Hyundai.xls','general.xlsx')


Ответы (1 шт):

Автор решения: Денис

Вопрос решен, способ со словарем [] подошел, если кому пригодиться ниже код

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import xlrd, xlwt, zipfile, zlib, xlsxwriter
import os

def general(in_filenames=[], out_filename=None):
        bookgeneral  = xlsxwriter.Workbook('general.xlsx')
        worksheet = bookgeneral.add_worksheet('Sheet1')
        worksheet.write(0,0,'Артикул')
        worksheet.write(0,1,'Склад')
        worksheet.write(0,2,'Стоимость')
        worksheet.write(0,3,'Кратность заказа')
        i=0

        for in_filename in in_filenames:
                if not os.path.isfile(in_filename):
                    return None
                book = xlrd.open_workbook(in_filename, on_demand=True)
                sheet = book.sheet_by_index(0)
                for row_index in range(sheet.nrows):
                        if row_index < 1:
                                continue

                        i = i + 1
                        worksheet.write(i,0,sheet.cell(row_index, 1).value)  # Артикул
                        worksheet.write(i,1,sheet.cell(row_index, 4).value)  # Склад
                        worksheet.write(i,2,sheet.cell(row_index, 5).value)  # Стоимость
                        worksheet.write(i,3,sheet.cell(row_index, 7).value)  # Кратность
                print("Обработано %d строк\n" % i)  
        bookgeneral.close()

general(in_filenames=[
        'Hyundai.xls',
        'nalichie_1_3.xls',
        'peugeot_citroen.xls',
],
        out_filename='general.xlsx')

→ Ссылка