Xlwings 技巧随笔
作者:互联网
1.app基本设置
#是否可见,是否增加新的工作蒲 app = xw.App(visible=True, add_book=False) #是否进行屏幕更新,关闭后可以提升代码执行速度 app.screen_updating = True
2.打开Excel
wb = app.books.open(path)
3.使用Sheet页
sh = wb.sheets["Sheet1"]
4.获取最大行数
sh.used_range.last_cell.row
5.获取值
#获取A1单元格的值 range("A1").value #获取范围值 range("A1:B2").value
6.关闭,保存,退出
wb.close() wb.save() app.quit()
7.写入二维数组
sh.range('A2').expand("table").value = sheet_values
8.清除
#清除数据,保留格式 sh.range('A1:B2').clear_contents() #清除数据及格式 sh.clear()
9.数据刷新
wb.api.RefreshAll()
10.获取Sheet页名称
sheet_names=[] for sheet in wb.sheets: sheet_names.append(sheet.name)
11.新增Sheet
wb.sheets.add(sheet_name)
12.自动调整单元格宽度
sh.api.Columns("A:P").EntireColumn.AutoFit()
13.隐藏Sheet页
sh.visible = False
14.变成数值格式,并保留位数
和直接int或者Round不同的是,变成数值格式不会改变原数值,变成int会省略小数点后的数,使用Round会导致四舍五入
#保留整数 sh.range("U2:U10").api.NumberFormatLocal = "0_);[红色](0)" #保留两位小数 sh.range("V2:V10").api.NumberFormatLocal = "0.00_);[红色](0.00)"
15.更改颜色
sh.range("A1:V1").color =(141, 180, 226)
16.删除Sheet页
sh.delete()
17.下拉公式
#fillRange 的范围必须包含sourceRange sourceRange = turnover_sh.range('G2:V2').api fillRange = turnover_sh.range(f'C2:E{turnover_last_row}').api AutoFillType = 0 sourceRange.AutoFill(fillRange, AutoFillType)
经验,Xlwings找不到对应的功能,在Excel使用宏录制,看VBA的语句,然后调用xw.api使用对应的VBA语句
标签:sheet,wb,api,Xlwings,range,sh,Sheet,随笔,技巧 来源: https://www.cnblogs.com/98WDJ/p/16164581.html