工作中有这个需求,网上找的工具IT限制不让用,要么用着不顺手。
自己用python写了个:
# -*- coding: utf-8 -*-
#Author Albert.Wang 2020/7/2
#合并多个Excel表格
import xlsxwriter
import xlrd
import os
work=xlsxwriter.Workbook(r'.\汇总.xlsx') #建立一个文件
sheet=work.add_worksheet('汇总') #新建一个sheet
path='.' #目录(放Excel表格的目录)
file_list=os.listdir(path)
file_name='';x1=1
for file in file_list: #循环遍历列出所有文件名称
if '台账' in file:
file_name = os.path.join(path,file) #路径+文件名
else:
continue
workbook=xlrd.open_workbook(file_name) #打开第一个文件
sheet_name=workbook.sheet_names() #获取第一个文件的sheet名称
for file_1 in sheet_name: #循环遍历每个sheet
table=workbook.sheet_by_name(file_1) #以名字为索引
rows=table.nrows #获取sheet行数
clos=table.ncols #获取sheet列数目
for i in range(rows): #循环遍历每一行
sheet.write_row('A'+str(x1),table.row_values(i))#获取每一行的值追加到新表
x1+=1
print('已完成 ' + file_name)
work.close()
效果就是把当前文件夹下面所有excel文件中,文件名带【台账】2个字的,里面所有表的内容全提到一个汇总表里,保存为 汇总.xlsx,亲测可用,一秒能处理几十个文件。
之前网上找的是xlwt写入的,只能支持生成xls文件,只能按单元格写入,我换成了xlsxwriter,支持按行写入,速度快多了。
网友评论