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

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