同目录下若干个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)


第一次运行会生成excle和result两个文件夹,然后把你想要统计的Excel表格放到excel文件夹下面,在重新运行一遍重新,就会在result文件夹下产生一个new.xlsx的表格就是你要的表格了,码代码不容易,有用的话点一下采纳
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录