m0_64688321 2021-11-30 17:35 采纳率: 100%
浏览 105
已结题

Python操作同目录下多个excel表格

同目录下若干个excel表格,每个表格内若干个sheet表,每个sheet字段内容都不一样,合并到一个新的excel表内多个sheet中,比如表1三个sheet,表2四个sheet,表3七个sheet,合并完成后为一个表14个sheet。

  • 写回答

3条回答 默认 最新

  • 鸡蛋酱$ 2021-12-01 00:33
    关注
    import os
    import xlrd
    import openpyxl
    
    
    def get_excle():
        dir_list = os.listdir()
        if 'excel' not in dir_list:
            os.mkdir('excel')
        os.chdir('excel')
        Excels = os.listdir()
        return Excels
    
    
    # 获取单张表的数据
    def get_data(filename):
        d_list = []
        file = xlrd.open_workbook(filename)
        sheet_names = file.sheet_names()
        for i in range(len(sheet_names)):
            sheet = file.sheet_by_name(sheet_names[i])
            nrows = sheet.nrows
            ncols = sheet.ncols
            for row in range(nrows):
                new_list = []
                for col in range(ncols):
                    new_list.append(sheet.cell(row, col).value)
                d_list.append(new_list)
        return d_list
    
    
    # 获取文件夹下所有Excel的数据
    def sum_data():
        sum_list = []
        os.chdir('excel')
        excels = get_excle()
        for i in range(len(excels)):
            if '.xls' not in excels[i] or '.xlsx' not in excels[i]:
                continue
            data = get_data(excels[i])
            for j in range(len(data)):
                sum_list.append(data[j])
        os.chdir('..')
        return sum_list
    
    
    # 将数据写入新表格
    def create_excel(data):
        dir_list = os.listdir()
        if "result" not in dir_list:
            os.mkdir('result')
        os.chdir('result')
        file = openpyxl.Workbook()
        sheet = file['Sheet']
        for i in range(len(data)):
            for j in range(len(data[i])):
                sheet.cell(row=i + 1, column=j + 1, value=data[i][j])
        file.save('new.xlsx')
        os.chdir('..')
    
    
    if __name__ == '__main__':
        os.chdir('..')
        data_list = sum_data()
        create_excel(data_list)
    
    

    img

    img

    img

    第一次运行会生成excle和result两个文件夹,然后把你想要统计的Excel表格放到excel文件夹下面,在重新运行一遍重新,就会在result文件夹下产生一个new.xlsx的表格就是你要的表格了,码代码不容易,有用的话点一下采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 11月30日