Python代码实现合并excel文件的解决办法
内容摘要
这篇文章主要为大家详细介绍了Python代码实现合并excel文件的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的雯雯来看看吧!
一、安装
感兴趣的小伙伴,下面一起跟随php教程的雯雯来看看吧!
一、安装
文章正文
这篇文章主要为大家详细介绍了Python代码实现合并excel文件的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的雯雯来看看吧!
一、安装模块
1、找到对应的模块 http://www.python-excel.org/
2、用 pip install 安装
pip3 install xlrdpip3 install XlsxWriter
因为使用的是 python3,所以安装的时候采用 pip3。
二、XlsxWriter 示例
先看看简单的演示:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <code> 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() </code> |
教你用Python代码实现合并excel文件
运行结果如下:
三、合并Excel数据
对于合并 excel,有两种 case ,一种是表头都是一样的,一种是表头不一样的excel ,但是希望放到同一个表格里面,方便查看
四、表头都一样的 excel
这个处理很简单,具体代码如下:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <code> import xlrd import xlsxwriter source_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() </code> |
教你用Python代码实现合并excel文件
Excel 是由行和列组成的,所以这里将所有文件中的所有 sheet 中的数据读取出来组成一个二维数组,然后再写入新的 Excel。
五、表头都不一样的 excel
对于表头不一样的 excel,可能需要手动选取表格的一部分,然后进行合并。具体代码如下:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | <code> import xlrd import xlsxwriter source_xls = [ "a.xlsx" , "b.xlsx" ] target_xls = "合并.xlsx" # 读取数据 data = [] # 重复数据 dupdata = [] # 姓名列表,按照姓名去重 name = [] # 获取excel的个数 sheetcount = len(source_xls) i = 0 while 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 = 0 for 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() </code> |
教你用Python代码实现合并excel文件
六、合并后的结果
重复列表结果如下:
到此这篇关于教你用Python代码实现合并excel文件的文章就介绍到这了,更多相关Python合并excel文件内容请搜索php教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持php教程!
注:关于Python代码实现合并excel文件的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释