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