发布时间:2019-09-17 07:48:15编辑:auto阅读(1603)
有时候需要处理很多报表,将一个目录下的所有excel格式报表合并,手工操作费事费力如果能使用python,将多个.xlsx同时能够合并多个excel表的话,多么方便。
1、windows上python配置
windows上安装的是python2.7,需要使用pip安装一些第三方包,所以需要配置一下。在linux上修改Pip源很简单,但是在windows上很麻烦,所以我就直接单次指定pip源下载包
#windows上pip执行路径为C:\Python27\Scripts pip install -U pip -i https://pypi.douban.com/simple/ #升级pip pip install -i openpyxl #处理excel表格
2.合并多个xlsx表格
编写脚本,将E:\excel\目录下所有xlsx文件合并
#!/env/python #coding=utf-8 ##合并多个excel表格## import os import glob import openpyxl def merge_xlsx_files(xlsx_files): #定义函数合并xlsx文件 wb = openpyxl.load_workbook(xlsx_files[0]) #调用openpyxl模块loda_workbook函数 ws = wb.active #获取活跃的Worksheet ws.title = "merged result" #定义工作表标题 for filename in xlsx_files[1:]: #循环xlsx_files参数,获取第一个工作表(只有一个) workbook = openpyxl.load_workbook(filename) #调用函数 sheet = workbook.active #获取活跃的表格 for row in sheet.iter_rows(min_row=2): #遍历其他文件,忽略首行内容 values = [cell.value for cell in row] #循环获取单元格的值 ws.append(values) #将值依次添加末尾 return wb #返回 def get_all_xlsx_files(path): #定义获取所有xlsx文件 xlsx_files = glob.glob(os.path.join(path,'*.xlsx')) #采用glob方法指定路径下所有.xlsx的文件 sorted(xlsx_files,key=str.lower) #按照关键字字符串小写排序 return xlsx_files def main(): #定义主函数 xlsx_files = get_all_xlsx_files(os.path.expanduser ("E:\\excel\\")) #定义变量xlsx_files为get_all_xlsx_files函数,指定参数为指定目录 wb = merge_xlsx_files(xlsx_files) #定义wb为merge_xlsx_files函数,指定参数为遍历 wb.save('merged_form.xlsx') #save方法将汇总表保存到merged_form.xlsx if __name__ =='__main__': main()
完成合并后如下所示
上一篇: Python Utils
下一篇: 【小功能3】android引用jar时会
47840
46389
37280
34731
29312
25971
24909
19950
19542
18030
5791°
6411°
5926°
5961°
7063°
5911°
5942°
6437°
6404°
7777°