Python操作Excel的Xlwings教程(六)
最近在使用Xlwings的時候,發現有對Excel表格進行設定字型大小和顏色等操作。想必小夥伴們在日常的工作中也遇到了這樣的問題,為此我這裡總結一些操作供大家參考:
一、建立表格
import xlwings as xw
App = xw.App(visible=False, add_book=False)
wb = App.books.add()
sheet = wb.sheets.add('test_sets')
# Expands the range according to the mode provided. Ignores empty top-left cells (unlike ``Range.end()``).
# 將第一行置為1,2,3,4
# 將第2行開始的第一列置為11,12,13,14
sheet.range(1, 1).expand('right').value = [1, 2, 3, 4]
sheet.range(2, 1).expand('down').options(transpose=True).value = [10, 20, 30, 40]
wb.save('test_sets.xlsx')
wb.close()
App.quit()
建立的結果:新建了一個名test_sets.xlsx的檔案,在該檔案的test_sets頁簽上寫入了一些資料,資料顯示如下:
接下來我們將基於這個表格,做一些字型的大小顏色等設定的操作。
二、字型屬性設定
在官網的Xlwings的教程中沒有介紹直接設定Excel單元格字型的方式,但是提供了一個API供我們使用:
這句話是什麼意思呢?其實就是說使用api將返回windows Excel庫中的api呼叫,api可以參考官方文件連結:
https://docs.microsoft.com/en-us/office/vba/api/overview/excel
另外,我們在微軟官網的VBA教程中,發現了一個關於Font物件的相關操作:
VBA設定字型的方式就是:
Worksheets("Sheet1").Range("A1:C5").Font.Bold = True
Bold就是給選中的單元格進行加粗。這個Font物件其他的一些屬性還有以下幾種:
我們來介紹一下其中主要的一些屬性的意義(摘自官網):
那麼在Xlwings中該怎麼設定字型的大小呢?我們可以這樣來進行設定,在設定之前我們先看看設定之前單元格的或字型的預設值:
import xlwings as xw
App = xw.App(visible=False, add_book=False)
wb = App.books.open('test_sets.xlsx')
sheet = wb.sheets('test_sets')
sheetFont_name = sheet.range('B1').api.Font.Name
sheetFont_size = sheet.range('B1').api.Font.Size
sheetFont_bold = sheet.range('B1').api.Font.Bold
sheetFont_color = sheet.range('B1').api.Font.Color
sheetFont_FontStyle = sheet.range('B1').api.Font.FontStyle
print('字型名稱:', sheetFont_name)
print('字型大小:', sheetFont_size)
print('字型是否加粗:', sheetFont_bold)
print('字型顏色:', sheetFont_color)
print('字型型別:',sheetFont_FontStyle)
wb.save()
wb.close()
App.quit()
輸出結果如下:
字型名稱: 等線
字型大小: 11.0
字型是否加粗: False
字型顏色: 0.0
字型型別: 常規
接下來,我們來對單元格B1進行一些設定:
sheet.range('B1').api.Font.Name = '微軟雅黑'
sheet.range('B1').api.Font.Size = 20
sheet.range('B1').api.Font.Bold = True
sheet.range('B1').api.Font.Color = 0x0000ff
sheet.range('B1').api.Font.FontStyle = "Bold Italic"
上述程式碼的設定結果為,具體的顯示如下所示:
字型名稱: 微軟雅黑
字型大小: 20.0
字型是否加粗: True
字型顏色: 255.0
字型型別: 加粗傾斜
其中字型顏色為255.0,即為紅色。當然了設定的時候我們傳入的十六進位制的顏色值,這個十六進位制的顏色值大家可以百度一下這個顏色值。根據最後的輸出結果,我們在進行設定的時候也可以直接進行這樣的設定:
sheet.range('B1').api.Font.Color = 255.0
大家可以參考VBA中的設定:
Charts("Chart1").Axes(xlValue).TickLabels.Font.Color = _ RGB(0, 255, 0)
三、單元格屬性設定
單元格的一些設定前期也有部分涉及到,這次我們來總結一下並增加一些其他的屬性設定。
我們先看程式碼:
sheet.range('B1').api.HorizontalAlignment = -4108 # -4108 水平居中
sheet.range('B1').api.VerticalAlignment = -4130 # -4108 垂直居中
sheet.range('B1').api.NumberFormat = "0.00" # 設定單元格的數字格式
檔案結果顯示如下:
上述數值是怎麼確定的呢?
是檢視Excel的文件的,拿HorizontalAlignment 舉例:
Step1: 進入到網址:
https://docs.microsoft.com/en-us/office/vba/api/overview/excel
Step2: 在Filter by title地方輸入
HorizontalAlignment。
Step3:找到屬於Range下的這個連結,點進入。
Step4: 我們就可以看到:
Range.HorizontalAlignment Property的值。
Step5:點2處的XlHAlign,就可以看到一些屬性值的介紹了:
所以說,大家要多閱讀官網的文件,多查一下它們的用法。
接著我們來看一下邊框的設定,在設定邊框值之前,這裡給出常用邊框的索引:
https://docs.microsoft.com/en-us/office/vba/api/excel.xlbordersindex
給定一個常用連結,包含Excel物件模型中的列舉物件的一些資訊:
https://docs.microsoft.com/en-us/office/vba/api/excel(enumerations)
我們上述查詢的xlbordersindex就可以在這個介面查詢得到。
假設現在我們的Excel的Sheet的資料形式如下:
我們執行一下程式碼:
# 從範圍中每個單元格的左上角到右下角的邊框
sheet.range('C1').api.Borders(5).LineStyle = 1
sheet.range('C1').api.Borders(5).Weight = 2
# 從範圍中每個單元格的左下角到右上角的邊框
sheet.range('D1').api.Borders(6).LineStyle = 1
sheet.range('D1').api.Borders(6).Weight = 2
# 左邊框,虛線
sheet.range('C3').api.Borders(7).LineStyle = 2
sheet.range('C3').api.Borders(7).Weight = 2
# 頂邊框,雙點劃線
sheet.range('C3').api.Borders(8).LineStyle = 5
sheet.range('C3').api.Borders(8).Weight = 2
# 底部邊框,直線,設定邊框粗細為2
sheet.range('C3').api.Borders(9).LineStyle = 1
sheet.range('C3').api.Borders(9).Weight = 2
# 右邊框,點劃線
sheet.range('C3').api.Borders(10).LineStyle = 4
sheet.range('C3').api.Borders(10).Weight = 2
結果顯示如下:
是不是很簡單,就是對Borders()中傳入不同的index值就可以達到不同的效果。
備份表格區域:
相關文章
- Python操作Excel的Xlwings教程(七)PythonExcel
- xlwings:在Excel中整合PythonExcelPython
- python操作excelPythonExcel
- Python對excel的基本操作PythonExcel
- python 操作 Excel 表格PythonExcel
- 用Python完成Excel的常用操作PythonExcel
- 如何用python pandas操作excel?PythonExcel
- python讀寫excel表操作PythonExcel
- python 操作 excel 之資料清洗PythonExcel
- Python操作Excel的36個必備函式PythonExcel函式
- 【Python自動化Excel】Python與pandas字串操作PythonExcel字串
- python可以對excel進行那些操作PythonExcel
- 關於python操作excel,xlwt,xlwd,最簡單的操作介紹PythonExcel
- Python操作excel(將多張excel表融合到一張表)PythonExcel
- Python教程:生成Excel並更改表頭PythonExcel
- Python開發的入門教程(六)-函式Python函式
- Excel怎麼設定保護公式?Excel保護公式操作方法教程Excel公式
- 學會python永不加班系列之操作excelPythonExcel
- (Python基礎教程之七)Python字串操作Python字串
- xlsxwriter 操作 ExcelExcel
- java操作excelJavaExcel
- EXCEL操作公式Excel公式
- python交教程4:檔案操作Python
- Python:檔案操作詳細教程Python
- Golang是如何操作excel的?GolangExcel
- excel轉json操作ExcelJSON
- java操作excel表格JavaExcel
- Python 操作 Excel,總有一個模組適合自己PythonExcel
- 用python庫openpyxl操作excel,從源excel表中提取資訊複製到目標excel表中PythonExcel
- 【Python自學教程】提升Python開發者工作效率的六個庫Python
- 【Python基礎】Python處理Excel檔案,進行篩選資料、排序等操作及儲存新的Excel檔案PythonExcel排序
- excel in pythonExcelPython
- Python 使用ConfigParser操作ini配置檔案教程。Python
- Excel教程——excel如何使用條件格式Excel
- openpyxl 操作 Excel表的格基本用法Excel
- 使用ABAP操作Excel的幾種方法Excel
- 使用Java操作Excel表格JavaExcel
- (新手)使用pandas操作EXCELExcel