Python 使用xlwings操作Excel

一、安装xlwings

pip install xlwings

二、xlwings使用

1. 可以处理Excel的Python库有很多,xlwings是比较全的。它不仅可以读写和修改,还可以与Excel VBA相互调用。

2. apps(Excel应用程序)-> books(工作薄) -> sheets(工作表)-> Range 一个App对应一个Excel实例。如下图:一个Apps可以有多个app.

Python 使用xlwings操作Excel_第1张图片

1.引入库

import xlwings as xw

Apps

(1) 打开Excel程序

app = xw.App(visible=1, add_book=0) # 程序新建,只打开,不新建

visible用来设置程序是否可见,True表示可见(默认),Flase不可见。
add_book用来设置是否自动创建工作簿,True表示自动创建(默认),False不创建

(2) 关闭Excel程序

app.quit() # 退出excel程序,不保存任何工作簿
app.kill() # 通过杀掉进程,强制Excel app退出

Books

(1) 打开工作薄

# 方法一
wb = xw.Book()  # 这将创建一个新的工作簿
# 方法二
wb = xw.Book('FileName.xlsx')  # 连接到当前工作目录中的现有文件
# 方法三 
wb = app.books.open('FileName.xlsx')

Python 使用xlwings操作Excel_第2张图片

注意:使用方法三,需要用到Apps中(1) 打开excel程序。注意图片中的Book与books.

(2) 工作薄名字

wb.name

(3) 保存,关闭工作薄

wb.save() # 保存
wb.save(r"D:\test.xlsx") # 另存为
wb.close()

Sheets

(1) 新建工作表

sht = wb.sheets.add("工作表名")

(2) 选中工作表

sht = wb.sheets[0] # 按切片索引获取工作表
sht = wb.sheets(1) # 按索引获取工作表
sht = wb.sheets['Sheet1'] # 按表名获取工作表

(3)工作表名字,数量

sht.name # 获取工作表名
wb.sheets[表索引或原工作表名].name = "新工作表名" # 重命名

wb.sheets.count # 获取工作表数量

(4)清除工作表

sht.clear() # 清除工作表所有内容和格式
sht.clear_contents() # 清除工作表的所有内容但是保留原有格式

(5) 删除工作表

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

Range

(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博客

你可能感兴趣的:(Word_Excel,python,excel)