win32com是一个可以模拟人为操作程序的库
win32模块介绍:
win32com 模块主要为 Python 提供调用 windows 底层组件对 word 、Excel、PPT 等进行操作的功能;
不过有其局限性,只能在 Windows 环境下使用,并且需要安装 office 相关软件才行(WPS也行);
win32com模块不仅可以操作Excel,还可以操作其他在windows上安装的应用程序,这里只对操作Excel做简单介绍;
win32com使用入门:
- 安装并引入
安装方式有多种,推荐使用pip安装方式,打开命令行窗口,执行命令
> pip install pywin32
pip install pypiwin32
其中python2这个模块是pywin32里的,python3是pypiwin32
引入win32com客户端:
> 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.Worksheets[0]
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()
其他操作
ws.Range("A1:B1").Font.Bold = True #加粗
ws.Range("C1:D1").Merge() #合并单元格,合并之后读写均需选中第一个单元格
ws.Range("A1:T1").Columns.AutoFit()
#自动调节边框宽度,有时调节出来不准确,需要手动再校正
ws.Range("A1").ColumnWidth = 40 # 手动设置宽度