c++读取excel_5分钟快速学会 Python批量合并Excel/Sheet,新手也能懂!

f22227a551cf1602e57b3aaac9517685.png

最近工作遇上了需要批量合并表格,专门过来更新一版,希望能有效减轻各位表哥表姐的工作压力。

来个目录清晰一点,

目录

一、按Sheet 合并
二、按Excel 合并

一、按 Sheet 合并

所有代码的实现都离不开在内心翻译成大白话后再组装的顺序,下面我来分解一下需要做的步骤:

  1. 读取Excel里面所有Sheet
  2. 合并数据
  3. 保存新的数据

明确目标我们就开干:

1、读取所有Sheet

#导入需要的模块
import xlrd

#将excel的路径赋值
excel_name =( 'C:/Users/文件夹名字/Excel名字.xlsx' ) 
wb = xlrd.open_workbook(excel_name)

# 获取workbook中所有的表格
sheet = wb.sheet_names()

#这里我们可以打印一下看看内容
print(sheets)

2、合并数据

#导入需要的模块
import pandas as pd
from  pandas import DataFrame

# 循环遍历所有Sheet
alldata = DataFrame()
    
for i in range(len(sheet)):   #'sheet'对应第“1”步的赋值
    df = pd.read_excel(excel_name, sheet_name=i, index=False, encoding='utf8')
    alldata = alldata.append(df)

#同样的,我们来打印看看内容是不是自己想要的
print(alldata)

3、保存新的数据 ,也就是生成另外一个Excel文档

#Excel名字前面一串是保存的路径
alldata.to_excel('C:/Users/文件夹名字/Excel名字.xlsx')

好了!!看到这里的同学简直棒呆!!

完成了基本步骤我们就汇总即可完成构思了!实际就是下面这么短的几个代码就完了。

如果想在原文件上加汇总后的Sheet,再引用一个库就好了:openpyxl

import xlrd
import pandas as pd
from  pandas import DataFrame

excel_name =('C:/Users/文件夹名字/Excel名字.xlsx' ) 
wb = xlrd.open_workbook(excel_name)
sheet = wb.sheet_names()
#print(sheet)

alldata = DataFrame()
for i in range(len(sheet)):
    df = pd.read_excel(excel_name, sheet_name=i, index=False, encoding='utf8')
    alldata = alldata.append(df)
# print(alldata)

alldata.to_excel( 'C:/Users/文件夹名字/Excel名字.xlsx' )

--------------------------------分开清晰点----------------------------------

二、按 Excel 合并

多个Excel合并的代码看上去比合并多个sheet更简单。老规矩翻译成大白话

  1. 将各个Excel的数据都收集起来
  2. 合并收集起来的数据
  3. 保存新的数据

1、将各个Excecl的数据收集起来,也就是读取所有Excel文档了

#导入模板
import os
for file in os.walk( 'C:/Users/文件夹名字' ):
	print(file)

看起来简单吧~

2、合并收集起来的信息,就是说先收集

#导入模板,file[2]是索引
for table in file[2]:
		path = file[0] + '/' + table
		data = pd.read_excel(path)
		n = n+1
		l.append(data)

#收集好数据之后,就将新数据新增到空列表方便下一步
data_result = pd.concat(l)

3、保存新的数据,这一步其实和“按 Sheet 合并”一样

data_result.to_excel ( '试试啊.xlsx' ,index = 0 )

好了,我们将步骤汇总看看效果:

import os
import pandas as pd
for file in os.walk( 'C:/Users/文件夹名字' ):
	print(file)
	for table in file[2]: #file[2]是索引对应内容,好奇的话print一下对比就好
		path = file[0] + '/' + table
		data = pd.read_excel(path)
		n = n+1
		l.append(data)
		print('第'+str(n)+'个表已提取')

data_result = pd.concat(l)
data_result.to_excel ('试试啊.xlsx',index = 0 ) #保存Excel文档及命名

Goooood!!!至此已经讲完了,如果大家还可以按照自己的喜好修饰一下,譬如这样的效果:

ad50b0b888380abe11d4d0ca9c2178cf.png

全文完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值