电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

如何用python合并多個excel文件

瀏覽:125日期:2022-06-25 08:51:03
安裝模塊

1、找到對應的模塊 http://www.python-excel.org/

2、用 pip install 安裝

pip3 install xlrdpip3 install XlsxWriter

因為使用的是 python3,所以安裝的時候采用 pip3。

XlsxWriter 示例

先看看簡單的演示:

import xlsxwriter# 創建一個工作簿并添加一個工作表workbook = xlsxwriter.Workbook('c.xlsx')worksheet = workbook.add_worksheet()# 設置列寬worksheet.set_column('A:A', 20)# 設置格式bold = workbook.add_format({'bold': True})# 設置單元格的值worksheet.write('A1', 'Hello')# 帶格式的單元格worksheet.write('A2', 'World')# 寫一些數字,用行列標識worksheet.write(2, 0, 123)worksheet.write(3, 0, 123.456, bold)# 插入一張圖片worksheet.insert_image('B5', 's.png')# 關閉文件流workbook.close()

運行結果如下:

如何用python合并多個excel文件

合并Excel數據

對于合并 excel,有兩種 case ,一種是表頭都是一樣的,一種是表頭不一樣的excel ,但是希望放到同一個表格里面,方便查看

表頭都一樣的 excel

這個處理很簡單,具體代碼如下:

import xlrdimport xlsxwritersource_xls = ['a.xlsx', 'b.xlsx']target_xls = '3.xlsx'# 讀取數據data = []for i in c: wb = xlrd.open_workbook(i) for sheet in wb.sheets(): for rownum in range(sheet.nrows): data.append(sheet.row_values(rownum))print(data)# 寫入數據workbook = xlsxwriter.Workbook(target_xls)worksheet = workbook.add_worksheet()font = workbook.add_format({'font_size': 14})for i in range(len(data)): for j in range(len(data[i])): worksheet.write(i, j, data[i][j], font)# 關閉文件流workbook.close()

Excel 是由行和列組成的,所以這里將所有文件中的所有 sheet 中的數據讀取出來組成一個二維數組,然后再寫入新的 Excel。

表頭都不一樣的 excel

對于表頭不一樣的 excel,可能需要手動選取表格的一部分,然后進行合并。具體代碼如下:

import xlrdimport xlsxwritersource_xls = ['a.xlsx', 'b.xlsx']target_xls = '合并.xlsx'# 讀取數據data = []# 重復數據dupdata = []# 姓名列表,按照姓名去重name = []# 獲取excel的個數sheetcount = len(source_xls)i = 0while i < len(source_xls): wb = xlrd.open_workbook(source_xls[i]) # 存儲不同excel 的數據 data.append([]) # 一個excel 可能存在多張表格 for sheet in wb.sheets(): if i == 0: # 先把表頭添加進去 dupdata.append(sheet.row_values(0)) for rownum in range(sheet.nrows): # 判斷名字是否重復,表頭都是姓名開頭的,所以把姓名除去 if (sheet.row_values(rownum)[0] in name): dupdata.append(sheet.row_values(rownum)) # 給數據添加另一個表的表頭 if (sheet.row_values(rownum)[0] == ’姓名’): data[i].append(sheet.row_values(rownum)) else: name.append(sheet.row_values(rownum)[0]) data[i].append(sheet.row_values(rownum)) i+=1# 合并數據workbook = xlsxwriter.Workbook(target_xls)worksheet = workbook.add_worksheet()font = workbook.add_format({'font_size': 14})lineNum = 0for num in range(len(data)): # 區分來自不同excel 的數據 if num== 0 : for i in range(len(data[num])): # 姓名 worksheet.write(lineNum, 0, data[num][i][0], font) # 檢查編號 worksheet.write(lineNum, 1, data[num][i][1], font) # 年齡 worksheet.write(lineNum, 2, data[num][i][23], font) # 藍標 worksheet.write(lineNum, 3, data[num][i][14], font) # 黃標 worksheet.write(lineNum, 4, data[num][i][19], font) worksheet.write(lineNum, 5, data[num][i][20], font) worksheet.write(lineNum, 6, data[num][i][21], font) # 大小 worksheet.write(lineNum, 7, data[num][i][24], font) worksheet.write(lineNum, 8, data[num][i][25], font) worksheet.write(lineNum, 9, data[num][i][26], font) lineNum += 1 # 只有兩個excel ,所以直接用了 else else: for i in range(len(data[num])): lineNum += 1 # 姓名 worksheet.write(lineNum, 0, data[num][i][0], font) # 檢查編號 worksheet.write(lineNum, 1, data[num][i][1], font) # 年齡 worksheet.write(lineNum, 2, data[num][i][2], font) # 藍標 worksheet.write(lineNum, 3, data[num][i][30], font)# 關閉文件流workbook.close()# 針對重復數據,連表頭一起輸出,方便后續回顧查看workbook = xlsxwriter.Workbook('重復.xlsx')worksheet = workbook.add_worksheet()font = workbook.add_format({'font_size': 14})for i in range(len(dupdata)): for j in range(len(dupdata[i])): worksheet.write(i, j, dupdata[i][j], font)# 關閉文件流workbook.close()

Excel 是由行和列組成的,所以這里將所有文件中的所有 sheet 中的數據讀取出來組成一個二維數組,然后再寫入新的 Excel。

表頭都不一樣的 excel

對于表頭不一樣的 excel,可能需要手動選取表格的一部分,然后進行合并。具體代碼如下:

import xlrdimport xlsxwritersource_xls = ['a.xlsx', 'b.xlsx']target_xls = '合并.xlsx'# 讀取數據data = []# 重復數據dupdata = []# 姓名列表,按照姓名去重name = []# 獲取excel的個數sheetcount = len(source_xls)i = 0while i < len(source_xls): wb = xlrd.open_workbook(source_xls[i]) # 存儲不同excel 的數據 data.append([]) # 一個excel 可能存在多張表格 for sheet in wb.sheets(): if i == 0: # 先把表頭添加進去 dupdata.append(sheet.row_values(0)) for rownum in range(sheet.nrows): # 判斷名字是否重復,表頭都是姓名開頭的,所以把姓名除去 if (sheet.row_values(rownum)[0] in name): dupdata.append(sheet.row_values(rownum)) # 給數據添加另一個表的表頭 if (sheet.row_values(rownum)[0] == ’姓名’): data[i].append(sheet.row_values(rownum)) else: name.append(sheet.row_values(rownum)[0]) data[i].append(sheet.row_values(rownum)) i+=1# 合并數據workbook = xlsxwriter.Workbook(target_xls)worksheet = workbook.add_worksheet()font = workbook.add_format({'font_size': 14})lineNum = 0for num in range(len(data)): # 區分來自不同excel 的數據 if num== 0 : for i in range(len(data[num])): # 姓名 worksheet.write(lineNum, 0, data[num][i][0], font) # 檢查編號 worksheet.write(lineNum, 1, data[num][i][1], font) # 年齡 worksheet.write(lineNum, 2, data[num][i][23], font) # 藍標 worksheet.write(lineNum, 3, data[num][i][14], font) # 黃標 worksheet.write(lineNum, 4, data[num][i][19], font) worksheet.write(lineNum, 5, data[num][i][20], font) worksheet.write(lineNum, 6, data[num][i][21], font) # 大小 worksheet.write(lineNum, 7, data[num][i][24], font) worksheet.write(lineNum, 8, data[num][i][25], font) worksheet.write(lineNum, 9, data[num][i][26], font) lineNum += 1 # 只有兩個excel ,所以直接用了 else else: for i in range(len(data[num])): lineNum += 1 # 姓名 worksheet.write(lineNum, 0, data[num][i][0], font) # 檢查編號 worksheet.write(lineNum, 1, data[num][i][1], font) # 年齡 worksheet.write(lineNum, 2, data[num][i][2], font) # 藍標 worksheet.write(lineNum, 3, data[num][i][30], font)# 關閉文件流workbook.close()# 針對重復數據,連表頭一起輸出,方便后續回顧查看workbook = xlsxwriter.Workbook('重復.xlsx')worksheet = workbook.add_worksheet()font = workbook.add_format({'font_size': 14})for i in range(len(dupdata)): for j in range(len(dupdata[i])): worksheet.write(i, j, dupdata[i][j], font)# 關閉文件流workbook.close()

合并后的結果

如何用python合并多個excel文件

重復列表結果如下:

如何用python合并多個excel文件

以上就是如何用python合并多個excel文件的詳細內容,更多關于python 合并excel文件的資料請關注好吧啦網其它相關文章!

標簽: python
相關文章:
主站蜘蛛池模板: 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 金属切削液-脱水防锈油-电火花机油-抗磨液压油-深圳市雨辰宏业科技发展有限公司 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 越南专线物流_东莞国际物流_东南亚专线物流_行通物流 | 嘉兴恒升声级计-湖南衡仪声级计-杭州爱华多功能声级计-上海邦沃仪器设备有限公司 | 无水硫酸铝,硫酸铝厂家-淄博双赢新材料科技有限公司 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 泰安塞纳春天装饰公司【网站】 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 铝扣板-铝方通-铝格栅-铝条扣板-铝单板幕墙-佳得利吊顶天花厂家 elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | LHH药品稳定性试验箱-BPS系列恒温恒湿箱-意大利超低温冰箱-上海一恒科学仪器有限公司 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 干培两用箱-细菌恒温培养箱-菲斯福仪器 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 继电器模组-IO端子台-plc连接线-省配线模组厂家-世麦德 | 废旧物资回收公司_广州废旧设备回收_报废设备物资回收-益美工厂设备回收公司 | TMT观察网_独特视角观察TMT行业| 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 衬氟旋塞阀-卡套旋塞阀-中升阀门首页 | 网站优化公司_北京网站优化_抖音短视频代运营_抖音关键词seo优化排名-通则达网络 | 二手注塑机回收_旧注塑机回收_二手注塑机买卖 - 大鑫二手注塑机 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 四探针电阻率测试仪-振实密度仪-粉末流动性测定仪-宁波瑞柯微智能 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 信阳市建筑勘察设计研究院有限公司| 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 |