pip install xlwings
1. 可以处理Excel的Python库有很多,xlwings是比较全的。它不仅可以读写和修改,还可以与Excel VBA相互调用。
2. apps(Excel应用程序)-> books(工作薄) -> sheets(工作表)-> Range 一个App对应一个Excel实例。如下图:一个Apps可以有多个app.
import xlwings as xw
app = xw.App(visible=1, add_book=0) # 程序新建,只打开,不新建
visible用来设置程序是否可见,True表示可见(默认),Flase不可见。
add_book用来设置是否自动创建工作簿,True表示自动创建(默认),False不创建
app.quit() # 退出excel程序,不保存任何工作簿
app.kill() # 通过杀掉进程,强制Excel app退出
# 方法一
wb = xw.Book() # 这将创建一个新的工作簿
# 方法二
wb = xw.Book('FileName.xlsx') # 连接到当前工作目录中的现有文件
# 方法三
wb = app.books.open('FileName.xlsx')
注意:使用方法三,需要用到Apps中(1) 打开excel程序。注意图片中的Book与books.
wb.name
wb.save() # 保存
wb.save(r"D:\test.xlsx") # 另存为
wb.close()
sht = wb.sheets.add("工作表名")
sht = wb.sheets[0] # 按切片索引获取工作表
sht = wb.sheets(1) # 按索引获取工作表
sht = wb.sheets['Sheet1'] # 按表名获取工作表
sht.name # 获取工作表名
wb.sheets[表索引或原工作表名].name = "新工作表名" # 重命名
wb.sheets.count # 获取工作表数量
sht.clear() # 清除工作表所有内容和格式
sht.clear_contents() # 清除工作表的所有内容但是保留原有格式
sht.delete()
(6) 工作表使用区域及最大行数,列数
# 使用区域方法一
rng = sht.used_range
# 使用区域方法二
rng = sht.api.UsedRange
# 数据区域最大行数
max_row = sht.used_range.last_cell.row
# 数据区域最大列数
max_col = sht.used_range.last_cell.column
(1) 获取某区域地址
addr = rng.address
(2) 读取,修改
sht.rng(2, 3).value # 根据列号读取值
sht.rng((2, 2), (3, 3)).value
sht.rng("A1").value
sht.cells(1,2) #cells引用单元格,单元格行/列均从1开始索引
#引用某一行、一列
rng = sht.range('a1').expand('table')
nrows = rng.rows.count
ncols = rng.columns.count
a = sht.range(f'a1:a{nrows}').value
b = sht[0,:ncols].value #用切片
rng = sht.range('A'+str(r)) #多用于循环
# 复制
sht.rng("A1:C3").copy()
# 粘贴
sht.rng("D1").paste()
(3) 写入,获取公式
sht.rng("A1").formula = "=SUM(A1, A2)" # 写入公式
sht.rng("A1").formula_array # 获取公式
参考:
Python API · xlwings中文文档 · 看云 (kancloud.cn)
(29条消息) Python模块之xlwings模块学习笔记(一)_python xlwings_python-小卒的博客-CSDN博客