IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python使用 pywin32 模块操作 excel,Python 操作 excel 系列之五 -> 正文阅读

[Python知识库]python使用 pywin32 模块操作 excel,Python 操作 excel 系列之五

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

本篇咱们要学习的模块是 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.Count

print(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).Value

print(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知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:09:03  更:2022-03-11 22:10:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:31:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码