获取Excel中sheet页的name,并对不同sheet 页进行处理

18 篇文章 2 订阅

1、梳理流程思路

  • 首先导入需要调用的模块
  • 其次,打开工作簿,获取工作簿的sheet页名字
  • 读取不同sheet页,做不同的处理
  • 将处理完成的结果,保存下来

2、具体代码实现

import pandas as pd
import xlrd
from  openpyxl import load_workbook
file_path=r"E:\\work\\shuju\\源表\\2021年淘客订单汇总表.xlsx"
wb = xlrd.open_workbook(file_path)  #打开工作簿
sheets = wb.sheet_names() # 获取工作簿的sheet页名字
print(sheets)  # 打印sheet页名字

 可以看出,已经打印出了这个Excel中包含的所有sheet页名字。

接下来使用for来对Excel表进行遍历循环,首先看一下循环打印结果:

# 目的将部分Excel中的数据进行处理
pass_list = ['总表','记-0082','记-0169', '记-0170', '记-0171']  # 将
# 将所有的表进行循环遍历
for i in sheets:
    if i not in pass_list:
        print(i)
    else:
        print(i,"not in list")
print("循环结束")

结果显示:

 目的:将指定sheet页的指定列进行拼接

# 目的将部分Excel中的数据进行拼接
pass_list = ['总表','记-0082','记-0169', '记-0170', '记-0171']  # 将
# 将所有的表进行循环遍历
all_data =pd.DataFrame()  #首先构建一个空的DataFrame对象,用于存放数据
for i in sheets:
    if i not in pass_list:
        data = pd.read_excel(file_path ,sheet_name =i)
#         print(list(data)) #打印data的列名
        if '订单付款时间 ' in list(data):   
            data=data.rename(columns={'订单付款时间 ': '订单付款时间'})   #由于数据不规范,对数据列名进行规范
        Data = data[['订单付款时间','买家会员名']]
        print(Data.head())
        Data['订单付款时间'] = Data['订单付款时间'].astype(str) #将该字段转为字符串类型
        Data['Sheet_name'] = i
        all_data = all_data.append(Data)

        print("=========")
print("循环结束")

结果输出:

 

out_path =r"E:\\work\\shuju\\源表\\hebing.xlsx"  #构建输出表
writer = pd.ExcelWriter(out_path)
all_data .to_excel(writer,sheet_name ='Sheet1',index =False)
writer.save() #保存结果
writer.close()

整个小项目完成~~~~~~~~~~~~~~~~~

学会之后,真的减轻了工作量,大大提高了效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值