本篇博客是 Python 操作 excel 系列的第5篇,前4篇博客阅读地址如下所示:

  • 2022 之Python操作 Excel,xlrd 与 xlwt 模块一文掌握
  • Python 操作 Excel,从 xlwings 模块开始
  • Python 操作 Excel 第3篇博客,python openpyxl 模块一文打通
  • python处理excel文件,python xlsxwriter 一文初掌握

本篇咱们要学习的模块是 pywin32 ,该模块主要封装了 Windows 系统的 Win32 API,可以用它操作 COM 对象和图形窗口界面。需要特别注意的是该模块无法应用到 Windows 外的系统。

模块安装非常简单,使用如下命令即可。

pip install pywin32

操作 Excel 文件

接下来直接进入Excel 操作环节,使用如下代码即可

import win32com.client
import os# 获取当前工作目录
base_dir = os.path.dirname(os.path.abspath(__file__))
# print(base_dir)
xlsx_app = win32com.client.Dispatch('Excel.Application')
# Excel 文件是否可见,可测试 True 或者 False 即可
xlsx_app.Visible = True
# 文件名
filename = "测试.xlsx"
# 得到完整的文件路径,注意这里必须使用绝对路径,不然会提示文件不存在
path = os.path.join(base_dir, filename)
#  打开上述名称的excel文件
xlsx_book = xlsx_app.Workbooks.Open(path, ReadOnly=False)
# 打开对应名称的sheet,确保 Sheet 在 Excel 中存在
sht = xlsx_book.Worksheets('测试Sheet')
# 对当前 Sheet 清除内容
sht.UsedRange.ClearContents()# 获取 sheet 工作区的行数
nrows = sht.UsedRange.Rows.Countprint(nrows)

上述代码包含非常多的信息,你可以配合注释进行学习。

例如通过 xlsx_app.Workbooks.Open() 打开一个只读的 excel 文件,然后调用返回对象的 Worksheets() 方法获取工作表,接下来就可以按照以前我们熟悉的流程对工作表进行操作了。

文件另存为

使用 xlsx_book .SaveAs(newfilename) 可以将 Excel 文件进行转存。

上述代码创建的文件不在 py 文件所在目录,这里还是会涉及目录问题,修改如下

# 还是要注意路径问题
newpath = os.path.join(base_dir, '测试123.xlsx')xlsx_book.SaveAs(newpath)

这里再补充一个关闭文件的方法,代码如下所示,其中重要的方法是 Close() ,参数 SaveChanges 表示是否需要保存数据,0 不保存,1保存。

sht.Cells(1, 1).Value = "Nice"
xlsx_book.Close(SaveChanges=1)

读取单元格数据


import win32com.client
import os# 获取当前工作目录
base_dir = os.path.dirname(os.path.abspath(__file__))
# print(base_dir)
xlsx_app = win32com.client.Dispatch('Excel.Application')
# Excel 文件是否可见,可测试 True 或者 False 即可
xlsx_app.Visible = False# 文件名
filename = "测试.xlsx"
# 得到完整的文件路径,注意这里必须使用绝对路径,不然会提示文件不存在
path = os.path.join(base_dir, filename)
#  打开上述名称的excel文件
xlsx_book = xlsx_app.Workbooks.Open(path)# 打开对应名称的sheet,确保 Sheet 在 Excel 中存在
sht = xlsx_book.Worksheets('测试Sheet')# 获取单元格数据
data_a1 = sht.Cells(1, 1).Valueprint(data_a1)

其中 Cells(row, column) 方法中的参数对应的是行号和列号,并且下标是从 1 开始

设置单元格数据

上文是读取单元格数据,对其重新赋值也比较简单,执行下述代码即可

sht.Cells(1, 1).Value = "Nice"
xlsx_book.Close(SaveChanges=1)

选择区域数据

区域选择用到的方法是 Range()

data = sht.Range(sht.Cells(1, 1), sht.Cells(3, 3)).Value
print(data)

除此之外,你还可以参考下述代码进行操作

sht.Range("A1").Value = "测试A1"
sht.Range("A2:B2").Value = "A2:B2"
sht.Range("A3:B5,A4:B7").Value = "A3:B5,A4:B7"

其它操作,例如数据删除,设置背景色

使用 EntireRow.Delete() 可以删除行数据,使用 EntireColumn.Delete() 删除列数据。

sht.Rows(2).EntireRow.Delete() # 删除第2行
sht.Columns(2).EntireColumn.Delete() # 删除第2列

设置背景颜色

sht.Cells(1,1).Interior.ColorIndex = 1

这里的背景色是用数字索引实现的,一共有 56 色,其中特殊的 0 是无色,1 是黑色,2是白色。

如果希望设置列宽,可以参考下述代码

# 设置列宽
sht.Columns(1).ColumnWidth = 60

设置字体

# 设置字体
sht.Cells.Font.Name = "微软雅黑"

更多资料可以参考下述内容:http://timgolden.me.uk/pywin32-docs/contents.html

记录时间

2022年度 Flag,写作的 581 / 1024 篇。
可以关注我,点赞我、评论我、收藏我啦。

更多精彩

  • Python 爬虫 100 例教程导航帖(连续 3 年,不断更!)
  • Python爬虫120 (39.9 元,保 5 年更新)

python使用 pywin32 模块操作 excel,Python 操作 excel 系列之五相关推荐

  1. python xlwt xlrd模块详解_python操作excel之xlrd、xlwt模块详解

    python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 可从这里下载https://pypi.python.org/pypi.下面分别记录 ...

  2. python自动化办公模块有哪些-Python 自动化办公|Word文档

    [Python 自动化办公]专栏是介绍如何利用python办公,减少工作负荷.篇幅精炼,内容易懂,无论是否有编程基础,都非常适合. 在上次文章中,我们学习了[用python写入excel],这次我们学 ...

  3. 关于python中requests模块导入问题-python中requests模块的使用方法

    本文实例讲述了python中requests模块的使用方法.分享给大家供大家参考.具体分析如下: 在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂性代价获取综合 ...

  4. python导入自定义模块_ubuntu下Python导入自定义模块的方法

    ubuntu下Python导入自定义模块的方法 当在python程序中导入自定义模块时,若出现"Import Error:no module named xxx"表明系统在pyth ...

  5. python中tkinter模块_使用Python中的tkinter模块作图的方法

    python简述: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python[1 ...

  6. python ssh登陆模块_使用python的Paramiko模块登陆SSH

    paramiko是用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. python的paramiko模块可以方便的实现ssh登录,并执行命令. 1. pa ...

  7. python安装pygame模块_windows下 python 如何安装pygame模块

    本机系统:win7,Pyhon版本: 3.6.0 1. 安装下载python 官网 https://www.python.org/ 下载地址 https://www.python.org/downlo ...

  8. python链接hbase模块_利用python访问Hbase(Thrift模块安装与测试)

    转:http://shineforever.blog.51cto.com/1429204/1567640/ hadoop环境介绍: master服务:node1 slave服务器:node2,node ...

  9. python安装docx模块_安装Python的docx模块

    安装Python的docx模块 在执行进行自动化测试的时候,很多时候我们其实不会一直关注这个测试的,很多时候我们只需要关注一个结果,与我们的预期是否相互符合就可以了. 所以我们只需要把预期结果,和实际 ...

  10. python模拟浏览器模块_在Python中使用mechanize模块模拟浏览器功能

    知道如何快速在命令行或者python脚本中实例化一个浏览器通常是非常有用的. 每次我需要做任何关于web的自动任务时,我都使用这段python代码去模拟一个浏览器. import mechanize ...

最新文章

  1. linux 挂载硬盘_Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令...
  2. python百度网盘-bypy-百度网盘Python客户端 linux
  3. php+date+timezoe,PHP 字符串
  4. 云信私有化方案中如何搭建高可用的日志和监控平台?
  5. 阿里云云计算ACP考试知识点(标红为重点)
  6. python测试开发面试题_python测试开发面试之深浅拷贝
  7. Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的语言
  8. Spring properties定义bean
  9. inotify之文件系统事件监控使用入门
  10. MyEclipse 为xml添加本地的dtd文件
  11. APPCAN学习笔记006_创建第一个APPCAN应用
  12. DUILIB相对位置修改为锚概念
  13. Qt入门教程【高级控件篇】QTreeView树形视图
  14. 软考-信息安全工程师-下午题常考
  15. ydisk安卓版本_mydisktest
  16. 夏季养生:一觉,二瓜,三汤,四穴,五果
  17. 使用Docker搭建RAP2(技术文档管理私服)
  18. 《全栈技术资料》你值得拥有 | 寻找C站宝藏
  19. 小程序-输入关键字搜索,关键字在搜索列表中高亮效果
  20. Android 动画详解-思维导图版

热门文章

  1. 【算法与数据结构】海康相机接收数据转Mat结构
  2. 使用numpy和pandas计算平均值、方差、标准差
  3. Nest.js 怎样使用 hbs 的 partials?
  4. 世界上为什么有那么多的不幸的人
  5. C++ 面试宝典 - 知识点集锦
  6. html5 java 实现微信公众号自动分享功能(自定义文案和图标)
  7. 计算机辅助设计绘图佛,计算机辅助设计绘图员-标准及考试大纲.doc
  8. 光脚丫思考Vue3与实战:第05章 计算属性和侦听器 第01节 计算属性
  9. mac下iterm使用rz指令卡死解决方法
  10. Android中多行文本末尾添加图片 图标在文字后面 换行