首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python自动化系列之使用win32com操作Excel

python自动化系列之使用win32com操作Excel

原创
作者头像
JQ实验室
发布2022-07-15 23:55:35
发布2022-07-15 23:55:35
6.7K0
举报
文章被收录于专栏:实用技术实用技术

win32com是一个可以模拟人为操作程序的库

image.png
image.png

win32模块介绍:

win32com 模块主要为 Python 提供调用 windows 底层组件对 word 、Excel、PPT 等进行操作的功能;

不过有其局限性,只能在 Windows 环境下使用,并且需要安装 office 相关软件才行(WPS也行);

win32com模块不仅可以操作Excel,还可以操作其他在windows上安装的应用程序,这里只对操作Excel做简单介绍;

win32com使用入门:

  • 安装并引入 安装方式有多种,推荐使用pip安装方式,打开命令行窗口,执行命令> pip install pywin32

pip install pypiwin32

代码语言:txt
复制
其中python2这个模块是pywin32里的,python3是pypiwin32

引入win32com客户端:

代码语言:txt
复制
> from win32com import client
  • 简单入门使用:

1、打开Excel程序

app = client.Dispatch('Excel.Application')

打开word程序需传入word.Application

2、设置可见,让程序显示在前台

app.Visible = True

3、使用以下方法创建一个工作簿

wb = app.Workbooks.Add()

4、或者打开一个已存在的文件

wb = app.Workbooks.Open('openpyxl.xlsx')

5、获取sheet表的两种方式

根据名字 sheet = wb.Worksheets('Sheet2')

根据标识 sheet = wb.Worksheets0

6、添加一个sheet并命名

wb.Worksheets.Add().Name = 'New'

print(sheet.name)

7、给指定单元格赋值:

如给第8行第1列的单元格赋值,这里单元格从1开始计数不是从0开始计数 sheet.Cells(8,1).Value = 'test'

print(sheet.Cells(8,1).Value)

8、分别获取最大行和列

print(len(sheet.UsedRange.Rows)) print(len(sheet.UsedRange.Columns))

9、跨行读取

list0=sheet.Range('A2:A5').Value

print(list0) 读出来的是二维元组

10、保存文件并退出

wb.SaveAs('H:/openpyxl.xlsx') app.Quit()

其他操作

代码语言:python
复制
ws.Range("A1:B1").Font.Bold = True            #加粗
ws.Range("C1:D1").Merge()          #合并单元格,合并之后读写均需选中第一个单元格
ws.Range("A1:T1").Columns.AutoFit() 
#自动调节边框宽度,有时调节出来不准确,需要手动再校正
ws.Range("A1").ColumnWidth = 40          # 手动设置宽度

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • win32com是一个可以模拟人为操作程序的库
    • win32模块介绍:
    • win32com使用入门:
    • 其他操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档