使用python合并excel

使用python合并excel,第1张

概述当工作碰到需要将几个excel合并时,比如一个表,收集每个人的个人信息,陆续收回来就是十几张甚至几十张表,少了还好解决,但是很多的话就不能一个一个去复制了,这时候就想到了python,Python大法好啊。短短100行代码解决,无论几十张,几百张表,瞬间搞定。 首先需要安装两个模块:xlrd(读取excel),xlsxwriter(写入excel) pip install xlrdpip in

当工作碰到需要将几个excel合并时,比如一个表,收集每个人的个人信息,陆续收回来就是十几张甚至几十张表,少了还好解决,但是很多的话就不能一个一个去复制了,这时候就想到了python,Python大法好啊。短短100行代码解决,无论几十张,几百张表,瞬间搞定。

首先需要安装两个模块:xlrd(读取excel),xlsxwriter(写入excel)

pip install xlrdpip install xlsxwriter

安装好以后,直接上代码。如下:

 

 1 # -*- Coding: UTF-8 -*- 2 # filename : Merge_excel.py 3 # author by : Awrrays 4  5 import xlrd,xlsxwriter 6  7 # 打开表格 8 def openxls(file): 9     try:10         fx = xlrd.open_workbook(file)11         return fx12     except Exception as e:13         print(读取文件错误,错误为:{0}.format(e))14 15 # 获取所有sheet16 def getsheets(fx):17     return fx.sheets()18 19 # 获取某个sheet的行数20 def getrows(fx,sheet_num):21     table = fx.sheets()[sheet_num]22     rows = table.nrows23     return rows24 25 # 获取某个文件的内容并返回所有行的内容26 def getdump(fl,sheet_num):27     fx = openxls(fl)28     table = fx.sheet_by_name(sheet_name[sheet_num])29     row_num = getrows(fx,sheet_num)30     row_len = len(rows)31     for row in range(0,row_num):32         data = table.row_values(row)33         rows.append(data)34     dump.append(rows[row_len:])35     return dump36 # 定义要合并的所有文件37 allxls = ["E:/test/test1.xlsx",E:/test/test2.xlsx,E:/test/test3.xlsx]38 # 定义合并后的文件39 endxls = "E:/test/test.xlsx"40 41 # 存储一个sheet的结果42 sheet_value = []43 # 存储各sheet的名称44 sheet_name = []45 # 存储一行内容46 rows = []47 # 存储所有读取的结果48 dump = []49 50 # 读取第一个待读文件,获取sheet数51 fx = openxls(allxls[0])52 sheets = getsheets(fx)53 x = 054 for sheet in sheets:55     sheet_name.append(sheet.name)56     sheet_value.append([])57     x += 158 59 # 依次读取各sheet的内容60 for sheet_num in range(0,x):61     # 依次获取每个文件当前sheet的内容62     for fl in allxls:63         print(正在读取文件{0}的第{1}个标签.....format(fl,sheet_num))64         dump = getdump(fl,sheet_num)65     sheet_value[sheet_num].append(dump)66 67 file_num = len(allxls)68 endvlue = []69 70 # 获取各sheet的内容71 def get_sheet_value(k):72     for z in range(k,k+file_num):73         endvlue.append(sheet_value[0][0][z])74     return endvlue75 76 # 打开合并完成后的文件77 wb = xlsxwriter.Workbook(endxls)78 # 创建一个工作表79 ws = wb.add_worksheet()80 polit = 081 line_num = 082 # 依次遍历每个sheet中的内容83 for s in range(0,x * file_num,file_num):84     file_value = get_sheet_value(s)85     table_value = file_value[polit:]86     # 将每一个sheet中的内容写入新文件87     for a in range(0,len(table_value)):88         # 将sheet行写入到新文件89         for b in range(0,len(table_value[0])):90             # 将每一行的内容写入新文件91             for c in range(0,len(table_value[0][0])):92                 data = table_value[a][b][c]93                 ws.write(line_num,c,data)94             line_num += 195     # 设置分隔点96     polit = len(file_value)97 wb.close()

 

ok,最后结果:

总结

以上是内存溢出为你收集整理的使用python合并excel全部内容,希望文章能够帮你解决使用python合并excel所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1191777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存