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语句

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章