python excel xlwings 详解 官方文档: docs.xlwings.org/en/stable/q…
导入库
import xlwings as xw
设为程序可见, 不新建工作薄
app = xw.App(visible=True, add_book=False)
新建文档,保存
wb = xw.Book() wb.save(‘test.xlsx’)
打开已有文档
wb = xw.Book(“test.xlsx”)
进入第一张工作表
sht0 = wb.sheets[0]
在A1单元格输入值
sht0.range(‘A1’).value = ‘人生’
取单元格值
value = sht0.range(‘A1’).value
获取已打开的文档的单元格值,不需要实例化,文档没打开会报错
value = xw.Range(‘A1’).value
获取已打开的文档名
wb = xw.books.active
取列表值
list_value = sht0.range(‘A1:B2’).value
批量写入 从左上角A1开始
titles = [[’时间’, ‘地点’, ‘人’], [1, 2, 3]] sht0.range(‘A1’).value = titles
写入列有两种方法
sht0.range(‘A1’).options(transpose=True).value = [1,2,3,4] titles = [[1], [2], [3], [4]]
批量插入单元格,和插入数据
for i in range(5): sht0.range(‘a1:c4’).api.Insert() sht0.range(‘a1’).value = titles
保存,关闭,结束进程
wb.save(path=None) wb.close() app.quit() 常我们的操作基于Book类对象,当完成操作book.save之后,如果想要关掉Excel,可以调用book.app.kill()或者book.app.quit(),但在这之前不要book.close(),否则会报错哦
返回文件绝对路径
path = wb.fullname
返回文件名
filename = wb.name
清除sheet的内容和格式
sht0.clear()
加入超链接
a1 = xw.Range(‘A1′) a1.add_hyperlink(r’www.baidu.com’, ‘百度’, ‘提示:点击即链接到百度’)
获取超链接
hyperlink = a1.hyperlink
清除单元格的内容
a1、clear_contents()
清除单元格的格式和内容
a1、clear()
取得单元格的背景色,以元组形式返回RGB值
color = a1.color
设置单元格的颜色
a1、color = (255, 255, 255)
清除单元格的背景色
a1、color = None
获取公式或者输入公式
formula = a1.formula formula = a1.formula = ‘=SUM(B1:B9)’
获得单元格列宽
column_width = a1.column_width
新建工作薄,sheet
xw.books.add() xw.sheets.add()
xlwings基本对象
打开已保存的Excel文档
导入xlwings模块,打开Excel程序,默认设置:程序可见,只打开不新建工作薄,屏幕更新关闭
import xlwings as xw app=xw.App(visible=True,add_book=False) app.display_alerts=False app.screen_updating=False
文件位置:filepath,打开test文档,然后保存,关闭,结束程序
filepath=r’g:\Python Scripts\test.xlsx’ wb=app.books.open(filepath) wb.save() wb.close() app.quit() 新建Excel文档,命名为test.xlsx,并保存在D盘。 import xlwings as xw app=xw.App(visible=True,add_book=False) wb=app.books.add() wb.save(r’d:\test.xlsx’) wb.close() app.quit() 在单元格输入值 新建test.xlsx,在sheet1的第一个单元格输入 “人生” ,然后保存关闭,退出Excel程序。 import xlwings as xw app=xw.App(visible=True,add_book=False) wb=app.books.add()
wb就是新建的工作簿(workbook),下面则对wb的sheet1的A1单元格赋值
wb.sheets[’sheet1’].range(‘A1′).value=’人生’ wb.save(r’d:\test.xlsx’) wb.close() app.quit() 打开已保存的test.xlsx,在sheet2的第二个单元格输入“苦短”,然后保存关闭,退出Excel程序 import xlwings as xw app=xw.App(visible=True,add_book=False) wb=app.books.open(r’d:\test.xlsx’)
wb就是新建的工作簿(workbook),下面则对wb的sheet1的A1单元格赋值
wb.sheets[’sheet1’].range(‘A1′).value=’苦短’ wb.save() wb.close() app.quit() 掌握以上代码,已经完全可以把Excel当作一个txt文本进行数据储存了,也可以读取Excel文件的数据,进行计算后,并将结果保存在Excel中。 引用工作簿、工作表和单元格 引用工作簿,注意工作簿应该首先被打开 wb.=xw.books[’工作簿的名字‘] 引用活动工作簿 wb=xw.books.active 引用工作簿中的sheet sht=xw.books[’工作簿的名字‘].sheets[’sheet的名字’]
或者
wb=xw.books[’工作簿的名字’] sht=wb.sheets[sheet的名字] 引用活动sheet sht=xw.sheets.active 引用A1单元格 rng=xw.books[’工作簿的名字‘].sheets[’sheet的名字’]
或者
sht=xw.books[’工作簿的名字‘].sheets[’sheet的名字’] rng=sht.range(‘A1’) 引用活动sheet上的单元格
注意Range首字母大写
rng=xw.Range(‘A1’) 其中需要注意的是单元格的完全引用路径是:
第一个Excel程序的第一个工作薄的第一张sheet的第一个单元格
xw.apps[0].books[0].sheets[0].range(‘A1’) 迅速引用单元格的方式是 sht=xw.books[’名字’].sheets[’名字’]
A1单元格
rng=sht[’A1’]
A1:B5单元格
rng=sht[’A1:B5’]
在第i+1行,第j+1列的单元格
B1单元格
rng=sht[0,1]
A1:J10
rng=sht[:10,:10] PS: 对于单元格也可以用表示行列的tuple进行引用
A1单元格的引用
xw.Range(1,1) #A1:C3单元格的引用 xw.Range((1,1),(3,3))