• 针对一个excel文件中多个sheet的批处理,excel的选定全部工作表功能可以解决很多问题(如:转置、替换等),但是对于排序确难以实现。因此在这里使用python工具来实现批量排序。

  • 最终目的是实现对每个sheet文件排序后,将所有sheet拼接在一个sheet中。
  • 最初打算先批量排序,然后在实现拼接。

但是在运行批量排序的代码中发现sheet发生覆盖,虽然网上有避免覆盖的方法,但是不适用于这里。这里先介绍该方法。

https://blog.csdn.net/qq_39697564/article/details/88640686

# 1. 基本模块的导入
import numpy as np
import pandas as pd# 2. 创建不同的写入数据
DF_1 = pd.DataFrame(np.random.rand(12).reshape(6,2),columns=list('AB'))
DF_2 = pd.DataFrame(np.random.rand(12).reshape(6,2),columns=list('CD'))+1
DF_3 = pd.DataFrame(np.random.rand(12).reshape(6,2),columns=list('EF'))+2
DF_4 = pd.DataFrame(np.random.rand(12).reshape(6,2),columns=list('GH'))+3# 3. 数据写出
with pd.ExcelWriter(r'C:\Users\Desktop\ExcelTest\DF_All.xlsx') as writer:DF_1.to_excel(writer,sheet_name='DF_1')DF_2.to_excel(writer,sheet_name='DF_2')DF_3.to_excel(writer,sheet_name='DF_3')DF_4.to_excel(writer,sheet_name='DF_4')
writer.save()
writer.close()
print('Finished.')
  • 由上述代码也可以看出这里的每一个将要分别写入excel的数据框是独立的。但是我是想从一个excel中的多的sheet提取,然后处理后再次写入excel。
# -*- coding: UTF-8 -*-
#导入所需模块
import xlrd
import numpy as np
import pandas as pd
from  pandas import DataFrame
from openpyxl import load_workbookexcel_name = r'C:\4_stepSHIYAN\shiyan222.xlsx'  #表格地址+表格名
wb = xlrd.open_workbook(excel_name)  # 获取workbook中所有的表格
sheets = wb.sheet_names()
print (sheets)# 循环遍历所有sheet
#alldata = DataFrame()
for i in range(len(sheets)):df = pd.read_excel(excel_name, sheet_name=i, index=False, encoding='utf8')df.sort_values("POINTID", ascending=True, inplace=True)print (df)  #查看dataframe###保存为新的sheet,首先新建sheetwith pd.ExcelWriter(r'C:\4_stepSHIYAN\new.xlsx' ,engin='openpyxl') as writer :for j in range(3):name = "sheet"+ str(j)df.to_excel(writer,sheet_name= name )print ('处理完成!')##########上述代码跑到第二个for语句时,实际只是对于i内容的两次存储。并没真正实现i1、i的单独存储

未解决疑问——如何实现从excel里读取出来的多个sheet处理后再次写入另一个excel的多个sheet???

  • 但是对于自己的最终目标,可以直接将处理完的sheet拼接起来后再写入一个sheet中!!

    # -*- coding: UTF-8 -*-
    #导入所需模块
    import xlrd
    import pandas as pd
    from  pandas import DataFrame
    from openpyxl import load_workbookexcel_name =  r'C:\4_stepSHIYAN\shiyan222.xlsx'   #表格地址+表格名
    wb = xlrd.open_workbook(excel_name)  # 获取workbook中所有的表格
    sheets = wb.sheet_names()
    print (sheets)# 循环遍历所有sheet
    alldata = DataFrame()
    for i in range(len(sheets)):df = pd.read_excel(excel_name, sheet_name=i, index=False, encoding='utf8')df.sort_values("POINTID", ascending=True, inplace=True)  #对sheet内容按照第一列-POINTID-排序、inplace=True 将排序之后的数据直接替换原来的数据框(默认为False,False时,那么原来顺序没变,只是返回的是排序的)、ascending=True默认True升序排列;False降序排列alldata = alldata.append(df)  ##拼接
    #查看dataframe
    #print alldata#保存为新的sheet,首先新建sheet,合并后的数据保存到新sheet中
    writer = pd.ExcelWriter( r'C:\4_stepSHIYAN\shiyan222.xlsx' ,engin='openpyxl')
    book = load_workbook(writer.path)  ####作用?
    writer.book = book#利用dataframe.to_excel保存合并后的数据到新的sheet
    alldata.to_excel(excel_writer=writer,sheet_name="ALLDATA")#生成新的sheet命名为ALLDATA
    writer.save()
    writer.close()
    print ('处理完成!')
    

实现Excel里每个sheet的排序并整合在一个sheet里相关推荐

  1. matlab sheet名字,MATLAB得到excel多个非默认sheet名_怎样利用matlab去读取一个excel表中多个sheet的数据并导入一个sheet中?...

    如何用matlab读取一个excel表格中的若干个工作表 如果数字: xlsread('e:/shiyanshuju/shiyanbiaoge','sheet1','B1:D1440') 最好个表格放 ...

  2. Python对表格中的sheet进行排序【openpyxl】工作技能整理系列

    大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师.欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我的数据分析专栏,里面有许多优质的文章跟大家分享哦. 今天给大家分享 ...

  3. 计算机中如何按照成绩排名,电脑上名次怎么排序:怎么在excel 中进行成绩名次排序...

    EXCEL如何对自动排名的结果再进行自动排序? 1.首开excel表格,按住ctrl连续. 2.然后筛选一些人名后,发现时序号不连续了. 3.右侧创建一个序号列,输入=subtotal,选择3. 4. ...

  4. antd table 时间搜索_antd table按表格里的日期去排序操作

    表格内容 根据票据日期升序(这里是已经排序后的效果) 上代码 代码中data的内容如下 根据paper_date排序,因为目前这种格式不支持比较,需要先转换成时间戳 new Date(aTimeStr ...

  5. python打开excel指定的sheet_pandds指定一个或多个sheet读取excel(sheet_name参数)

    pandas读取excel常用read_excel函数,官方文档上该函数有很多参数,本节课讲解sheet_name参数,sheet_name决定读取哪些sheet. sheet_name参数可选类型如 ...

  6. python按某列拆分excel表格_Python实现将excel表格按某列拆分为多个sheet(模板格式不变)...

    #将一个excel表格,按照某列分为不同的sheet,并且将id作为sheet表格的名称 from openpyxl import load_workbook #加载需要拆分的总表个 wb = loa ...

  7. excel中条形图的条目排序与逆序

    excel中条形图的条目排序与逆序 在excel中创建一个条形图,经常会出现这样的情况,假设你的表格是: a  1 b  2 c  3 d  4 但是默认的条形图从上到下的条目顺序是dcba,纠结得很 ...

  8. Excel 表格实现多列排序

    Excel 表格实现多列排序 1.原始数据 2.需要实现  按照 表主键 有效日期 创建日期 三列进行升序排列 数据->排序-> 添加条件->选择列名  点击确定 3.排序后的结果 ...

  9. php表格单元格怎么实现排序,excel表格数据怎么自动排列-excel表格如何实现自动排序...

    excel表格如何实现自动排序 1.首先打excel表格,在第一个单中输入星期,如图所示. 2.在单元格下面的单元入星期一,鼠标放在星期一单元格的右下角. 3.完成以上步骤后,鼠标不放,即自动排序出现 ...

最新文章

  1. linux下遇到的小问题与解决方法
  2. [Android] for ArcFace Demo
  3. 部署与管理ZooKeeper
  4. php 替换字符串 图片,PHP替换字符串实现图片自适应屏幕实例代码
  5. 关中断是否禁止任务调度?关中断能作为互斥吗?
  6. linux版的navicat提示丢失scilexer.dll
  7. 对openflow 1.0协议的扩展
  8. 手把手教你通过Eclipse工程配置调用JNI完全攻略
  9. Matrix67:漫话中文分词算法
  10. THUPC2019划水记
  11. Struct1中 Form表单提交的几种方式以及无刷新提交的方式
  12. win10打开计算机出现马赛克,主编处理win10系统播放视频影片出现锯齿、马赛克、模糊的办法?...
  13. rtmp代理php源码_RTMP直播系统(示例代码)
  14. 群晖NAS、硬盘及路由器选购及组网,打造家庭资源共享环境
  15. AUTOCAD——设置图层
  16. C盘空间不足,UE4的deriveddatacache目录位置修改
  17. 数据库常用字段、列属性、表类型与SQLyog工具的使用
  18. OSChina 周五乱弹 —— 终于发现红薯看片的证据了
  19. 低分辨率人脸识别(LRFR)相关文章整理——(待更)
  20. c32循迹小车c语言程序,stm32篇--小车循迹

热门文章

  1. 部署JAX-WS Web服务作为战争中的Apache Tomcat(Deploying JAX-WS webservice as War in Apache Tomcat)...
  2. i.MX6ULL系统移植:Linux移植6 - Linux 内核移植
  3. 云函数+微信公众号到个人微信
  4. IObit Driver Booster 无法更新驱动的解决办法
  5. YEEZY 350灰橙被叫成灰橘,BOOST V2椰子表示很慷慨
  6. html多行注释如何实现,html多行注释如何实现?
  7. MySql 删除索引
  8. 用HTML制作简单的个人介绍主页
  9. 入门必看,快速判断mos管封装引脚的三个极和它的好坏
  10. 细究Android开发代码中心化所带来的问题