介绍安装模块
XlsxWriter示例
合并excel数据
表头都一样的excel
表头都不一样的Excel
本篇内容主要讲解“怎么用python合并多个excel文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习”怎么用python合并多个excel文件”吧!
python可以做什么
python是一种编程语言,内置了许多有效的工具,python几乎无所不能,该语言通俗易懂,容易入门,功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,网页开发等。
安装模块
1,找到对应的模块,http://www.python-excel.org/
2,用pip安装安装
pip3 install xlrd pip3 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":真正的}) #,设置单元格的值 worksheet.write (“A1",,“Hello") #,带格式的单元格 worksheet.write (“A2",,“World") #,写一些数字,用行列标识 worksheet.write (2, 0, 123) worksheet.write(3, 0, 123.456,粗体显示) #,插入一张图片 worksheet.insert_image (“B5",,“s.png") #,关闭文件流 workbook.close ()
运行结果如下:
合并excel数据
对于合并excel,有两种情况,一种是表头都是一样的,一种是表头不一样的excel,但是希望放到同一个表格里面,方便查看
表头都一样的excel
这个处理很简单,具体代码如下:
import xlrd import xlsxwriter source_xls =, (“a.xlsx",,“b.xlsx"】 时间=target_xls “3. xlsx" #,读取数据 时间=data [] for 小姐:c:拷贝=,,wb  xlrd.open_workbook(我) ,for sheet  wb.sheets拷贝(): for 才能;rownum 拷贝范围(sheet.nrows): ,,data.append (sheet.row_values (rownum)) 打印(数据) #,写入数据 时间=workbook xlsxwriter.Workbook (target_xls) 时间=worksheet workbook.add_worksheet () 时间=font workbook.add_format ({14}“font_size":) for 小姐:拷贝范围(len(数据)): ,for j 拷贝范围(len(数据[我])): worksheet.write才能(i, j,数据[我][j],字体) #,关闭文件流 workbook.close ()
Excel是由行和列组成的,所以这里将所有文件中的所有表中的数据读取出来组成一个二维数组,然后再写入新的Excel。
表头都不一样的Excel
对于表头不一样的Excel,可能需要手动选取表格的一部分,然后进行合并。具体代码如下:
import xlrd import xlsxwriter source_xls =, (“a.xlsx",,“b.xlsx"】 时间=target_xls “合并.xlsx" #,读取数据 时间=data [] #,重复数据 时间=dupdata [] #,姓名列表,按照姓名去重 时间=name [] #,获取excel的个数 sheetcount =, len (source_xls) 小姐:=0 while 小姐:& lt;, len (source_xls):=,,wb  xlrd.open_workbook (source_xls[我]) ,#存储不同excel 的数据 ,data.append ([]) ,#一个excel 可能存在多张表格 ,for sheet  wb.sheets拷贝(): if 才能小姐:==,0: ,,#,先把表头添加进去 ,,dupdata.append (sheet.row_values (0)) for 才能;rownum 拷贝范围(sheet.nrows): ,,#,判断名字是否重复,表头都是姓名开头的,所以把姓名除去 ,,if (sheet.row_values (rownum)[0],拷贝名称): ,,,dupdata.append (sheet.row_values (rownum)) ,,,#,给数据添加另一个表的表头 ,,,if (sheet.row_values (rownum)[0],==, & # 39;姓名& # 39;): ,,,,数据[我].append (sheet.row_values (rownum)) ,,: ,,,name.append (sheet.row_values (rownum) [0]) ,,,数据[我].append (sheet.row_values (rownum)) 我+=1 #,合并数据 时间=workbook xlsxwriter.Workbook (target_xls) 时间=worksheet workbook.add_worksheet () 时间=font workbook.add_format ({14}“font_size":) lineNum =0 for num 拷贝范围(len(数据)): ,#区分来自不同excel 的数据 ,if num==, 0,: for 才能小姐:拷贝范围(len(数据(num))): ,,#,姓名 ,,worksheet.write (lineNum, 0,,数据(num)[我][0],字体) ,,#,检查编的号 ,,worksheet.write (lineNum,, 1,,数据(num)[我][1],字体) ,,#,年龄 ,,worksheet.write (lineNum,, 2,,数据(num)[我][23],字体) ,,#,蓝标 ,,worksheet.write (lineNum,, 3,,数据(num)[我][14],字体) ,,#,黄标 ,,worksheet.write (lineNum,, 4,的数据(num)[我][19],字体) ,,worksheet.write (lineNum, 5日,数据(num)[我][20],字体) ,,worksheet.write (lineNum, 6日,数据(num)[我][21],字体) ,,#,大小 ,,worksheet.write (lineNum, 7日,数据(num)[我][24],字体) null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null怎么用python合并多个excel文件