本篇介绍,把多个excel表分别写到一个表格对应的多个sheet里面,每个表的名称就是sheet的名字
第一种方法:用pandas
import os
import pandas as pd
dir = './table_dir'
# 获取目录下所有的表
origin_file_list = os.listdir(dir)
print(origin_file_list)
with pd.ExcelWriter('result.xls') as writer:
# 循环遍历表格
for i in origin_file_list:
# 拼接每个文件的路径
file_path = dir + '/' + i
# 把表名赋予给对应的sheet
sheet_name = i[:-4]
df = pd.read_excel(file_path)
#变相解决表格中第一行第一列为空的缺陷
string = "".join(list(str(i) for i in df.index))
# 判断如果索引都为数字,则不保留索引(根据自己代码调整)
if string.isdigit():
df.to_excel(writer, sheet_name,index=False)
else:
df.to_excel(writer, sheet_name)
第二种方法:用openpyxl
import os
import openpyxl
dir = './table_dir'
# 获取目录下所有的表
origin_file_list = os.listdir(dir)
wb2 = openpyxl.Workbook()
for file in origin_file_list:
file_path = dir + '/' + file
sheet_name = file.split('/')[-1].split('.')[0]
print(sheet_name)
old_wb = openpyxl.load_workbook(file_path )
old_sheet_name = old_wb.get_sheet_names()[0]
old_ws = old_wb[old_sheet_name]
ws2 = wb2.create_sheet(sheet_name)
for row in old_ws.values:
ws2.append(row)
wb2.save('result.xls')
例如图: