#删除"测试1","测试2"两个sheet页
xlwb.Worksheets(("测试1","测试2"),).Delete()#调整excel格式(适应列宽,垂直居中,自动换行)
sht.Columns.AutoFit()
sht.UsedRange.VerticalAlignment=-4108
sht.UsedRange.HorizontalAlignment=-4108
sht.UsedRange.WrapText = True#清除所有内容,包括格式,外边框
sht.Range().Clear()
#只清除单元格内容
sht.Range().ClearContents()
#只清除单元格格式
sht.Range().ClearFormats()
#清除边框
sht.Rows(1).Borders.LineStyle=0#设置某区域的条件格式
#可参考 http://www.excel-cn.com/tip/325-cn.html
#设置某个范围值
formula1="=50"
#添加规则,参数为Add (Type, Operator, Formula1, Formula2)
#type为指定条件格式是基于单元格值还是基于表达式。,具体可参照https://docs.microsoft.com/zh-cn/office/vba/api/excel.xlformatconditiontype
#Operator为条件格式运算符,具体可参照https://docs.microsoft.com/zh-cn/office/vba/api/excel.xlformatconditionoperator
#Formula1为自定的范围值
#这里1为单元格的值 6表示小于 formula1为小于的比对值
#在B3到E8的范围内,若值小于0则字样标位红色
sht.Range("B3:E8").FormatConditions.Add(1,6,formula1)
sht.Range("B3:E8").FormatConditions(1).Font.Color=-16776961
#删除该规则
sht.Range("B3:E8").FormatConditions.Delete()
#基于表达式(A2=B2,则选中区域整行内容变为红色)
formula1="=$A2=$B2"
sht.Range("A2:D19").FormatConditions.Add(2,0,formula1)
sht.Range("A2:D19").FormatConditions(1).Interior.Color=-16776961#查找,其中LookAt=1表示准确匹配,LookIn=-4163表示匹配值
sht.Range("A:A").Find("200",LookAt=1,LookIn = -4163)
#在第一行中找申请人名称,并返回对应的列数
col = sheet_data.Rows(1).Find("申请人名称").Column
#指定单元格添加注释
comment = "哈哈"
sht.Range("A4").AddComment(comment)
#在原批注上追加信息
a = sheet_data.Range("A4").Comment.Text()
sheet_data.Range("A4").Comment.Text(a +"嘻嘻")
#删除批注
sht.Rows(1).ClearComments()#在指定的sheet页前面插入新的sheet页
xlwb.Worksheets.Add(xlwb.Worksheets(1)).Name = "新增"
#在指定的sheet页后面添加新的sheet页
xlwb.Worksheets.Add(After=xlwb.Worksheets("sheet3")).Name = "新增"
此方法只有在加载测试版才生效
xlapp = win32com.client.gencache.EnsureDispatch("ket.Application")
一般做法为计算最后一个sheet的位置,再新增最后一个
count=xlwb.Sheets.Count
xlwb.Worksheets.Add(After=xlwb.Worksheets(count)).Name = "新增"
#设置数据有效性,tupe=3为设置序列
sht.Cells(1,1).Validation.Add(Type=3,AlertStyle=1,Operator=3,Formula1="1,2,3")#排序,以第二列,从第二行到第四行排序,Key1为优先排序,Order1=1正序,=2倒序
sht.Rows("2:4").Sort(Key1=sht.Columns(2),Order1=2)#选择性粘贴为值和数字的格式并转置
sht.Range("A1:D13").Copy()
sht.Range("H8").PasteSpecial(12,Transpose=True)#激活sheet页
sht.Activate()#从指定区域的顶部单元格开始向下填充,直至该区域的底部。 区域中首行单元格的内容和格式将复制到区域中其他行内。
sht.Range("A1:C1").Select()
sht.Range("A1:C12").FillDown()#在sheet页职务的位置添加筛选条件,找出职务为同事,主管,代理主管的员工,
list1=["同事","主管","代理主管"]
#office加载的excel
sht.Range("a1").AutoFilter(Field=3,Criteria1=list1,Operator=7)
#wps版本
list1=["=同事","=主管","=代理主管"]
sht.Range("a1").AutoFilter(Field=3,Criteria1=list1,Operator=7)
#在sheet页职务的位置添加筛选条件,筛选出出职务不等于同事的人员
sht.Range("a1").AutoFilter(Field=3,Criteria1="<>同事")
#what:目标字符串 Replacement:替换字符串  LookAt=1 精确匹配
#查找并替换
sht.UsedRange.Replace(What="32",Replacement="111",LookAt=1)
#清除筛选条件
sht.ShowAllData()#删除重复项
sht.UsedRange.RemoveDuplicates(Columns = [1,2,3])#获取整个sheet页
sht.Cells.Select()
#获取sheet页可见数据
sht.UsedRange.Select()
#两者区别,第一个是复制全部内容填充到另一个sheet页,第二个是复制可见内容进行粘贴,不会覆盖另一张sheet页的其他范围内的数据#表格另存,第一个为保存路径,要加上文件名称,第二个为文件格式,第三个为打开密码,第四个为修改密码
#sheet:SaveAs(Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AddToMru, TextCodePage, TextVisualLayout)
xlwb.SaveAs(path,None," ",password)#读取合并的单元格
sht.Cells(1,4).MergeArea.Cells(1, 1)#有时设置格式需要重复点击才会刷新生效,这时可以用分列来实现刷新
#将第二列设置为文本格式后,进行分列
sht.Columns(2).NumberFormatLocal = "@"
sht.Columns(2).TextToColumns(Destination=sht.Cells(1,cols),DataType=2,FieldInfo=(1,2))
参数Destination为分列后的数据所存放的单元格区域的起始位置
DataType为指定是按照分隔符分列还是按照固定宽度分列
Tab,Semicolon,Comma,Space参数分别表示分隔符是Tab,分号,逗号还是空格,比如
按空格分,则Space=True
Other表示分隔符是其他字符
OtherChar指定其他分隔符是什么字符
FieldInfo表示分列后的各个列的具体格式参数为元组(1,2),第一个数字表示列号,第二个表示指定列的分析方法,其中2为文本格式
具体可参考https://docs.microsoft.com/en-us/office/vba/api/excel.range.texttocolumns
https://docs.microsoft.com/zh-cn/office/vba/api/excel.xlcolumndatatype#刷新单个指定透视表
xlwb.Worksheets("透视表").PivotTables("数据透视表1").PivotCache().Refresh()
#刷新指定sheet页的透视表
list_sht = ["sheet1","sheet2"]
for sht_name in list_sht:sht_temp = xlwb.Worksheets(sht_name)for pivo in sht_temp.PivotTables():print("透视表名称",pivo)pivo.PivotCache().Refresh()#excel插入图片,后面参数第一个是距离左部的距离,第二个是距离顶侧的距离,最后两个参数分别是宽跟高
sht.Shapes.AddPicture(r"C:\Users\LCJ\Desktop\数据报表导出.png",False,True,0,0,200,400)
#获取excel图片数量
count = sht.Shapes.Count#excel偏移设置,主要用于平行复制,当然数据量少比较适宜
#第一列的数据
res = sht.Range("A2:A9")
print(i.Address for i in res)
for i in res:sht.Range(i.Address).Copy()#这里excel的默认初始坐标轴为(1,1),如果往右偏移2格,则为(1,3),往下偏移1格则为(2,1)print(i.Offset(1,1).Address)#目标值向右复制,偏移2格sht.Paste(sht.Range(i.Offset(1,3).Address))#关闭时不保存excel
xlwb.Close(SaveChanges = False)#复制单元格为图片,先复制到G1单元格,再获取sheet内的图片
sht.Range("A1:D5").CopyPicture()
sht.Paste(sht.Range("G1"))
sht.Shapes("图片 1").copy()
img=ImageGrad.grabclipboard()
img.save(path)

python win32处理Excel(方法篇)相关推荐

  1. python win32处理Excel(基础篇)

    #导包 import win32com.client #Excel模块加载 xlApp=win32com.client.Dispatch("Excel.Application") ...

  2. 一个简单且处理速度很快的Python csv转excel方法

    因为业务需要,需要在Mac平台把csv转成excel,且excel在10万条到100万条之间. 如果在Windows下excel就能处理--但这是Mac. 最先用的方法是pandas里面的转excel ...

  3. python对数据进行合并的函数_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

  4. python 在excel指定列添加数据_python读取excel指定列数据并写入到新的excel方法

    如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...

  5. python利用pandas合并excel表格代码_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

  6. python excel写入一列_python读取excel指定列数据并写入到新的excel方法

    如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...

  7. python pandas合并单元格_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

  8. 【Python处理EXCEL】基础操作篇:在Python中导入EXCEL数据

    一.前期准备 此篇使用两种导入excel数据的方式,形式上有差别,但两者的根本方法实际上是一样的. 首先需要安装两个模块,一个是pandas,另一个是xlrd. 在顶部菜单栏中点击文件,再点击设置,然 ...

  9. python对excel两列求和写入另一列_python读取excel指定列数据并写入到新的excel方法...

    如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...

最新文章

  1. songsoft-关于加薪的策略
  2. Eclipse 中 Could not find *.apk的解决方案
  3. 怎么在php分页上结束分页,很经典的分页程序,该如何处理
  4. Linux环境中MySQL主从同步--添加新的从库
  5. 数据结构与算法之-----图(基本概念)
  6. 进销存库存管理软件哪个好用
  7. Eclipse安装P3C插件
  8. 【论文阅读】基于深度神经网络的人体运动姿态估计与识别
  9. 将CS5463存放的数据转换成float类型
  10. 【现代密码学】大作业-RSA大礼包
  11. ERP咨询顾问必备的7种公关能力
  12. ps—选择连续的多个图层、同时操作多个图层、选择所有图层与取消选择图层、锁定图层、锁定透明像素、锁定图像像素、锁定位置、锁定全部
  13. 【STM32学习】基于STM32F411CEU6的USB储存设备
  14. python socket编程 实现简单p2p聊天程序
  15. 冬令营Web基础整理——Day2
  16. oracle 导入1t dmp文件,利用FDW进行ORACLE到Postgresql的数据迁移
  17. xshell5使用ssh连接阿里云服务器
  18. 谈谈软件测试 QA、QC、QM的关系与区别
  19. 力扣算法1~10题(js)
  20. 骑士放置(最大独立集)

热门文章

  1. 大学英语四级电子照片修改过程。
  2. Java程序设计基础——简单Java程序
  3. 操作系统原理课程设计任务书
  4. 进入BeOS的花花世界 系列六
  5. SSM-Spring
  6. Linux防火墙操作命令,开放或关闭端口
  7. MATLAB数组相除
  8. error: ‘ULONG_MAX’ was not declared in this scope
  9. bzip2格式文件解压
  10. 新手做自媒体,最好掌握这4款视频制作软件