*以下內容為本人的學習筆記,如需要轉載,請宣告原文鏈接 微信公眾號「englyf」https://mp.weixin.qq.com/s/y-npGelPJwmx3iNvHaXRTg
本文上接《Python:Excel自動化實踐入門篇 甲》
正文開始之前,提醒一下朋友們,送圖書的活動還在繼續,朋友們請加緊時間點擊 參與一下》,不要錯過哦!
算術操作
在處理 excel 表格資料時,經常會用到公式來對資料執行統計,那么自動化怎么統計呢?
直接把計算公式賦值給輸出結果的單元格 cell,下面試一下計算區域資料的和
import openpyxl
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet['A1'] = 100
sheet['A2'] = 200
sheet['A3'] = 300
sheet['A4'] = 400
sheet['A5'] = 500
sheet['A7'] = '= SUM(A1:A5)'
workbook.save("sum.xlsx")
看看實際效果

調整行高和列寬
很多時候也需要對存盤某些資訊量的行列進行寬高調整,那么每個都要手動拖動拉伸就很令人苦惱了,這里介紹如何自動化設定行高和列寬,利用到修改單元格 cell 的屬性 height 和屬性 width 的值,
下面舉個例子
import openpyxl
workbook = openpyxl.load_workbook("test.xlsx")
sheet = workbook.active
sheet.row_dimensions[6].height = 70
sheet.column_dimensions['C'].width = 20
workbook.save('test.xlsx')
看看實際效果

這就是簡單的調整行高和列寬,會影響到同一行或列的所有單元格,
合并單元格
有些表格中,部磁區域的單元格可以作為同一個單元格使用,那么就可以對其執行合并操作了,
合并操作通過表格 sheet 的 merge_cells() 方法實作,下面看看代碼
import openpyxl
workbook = openpyxl.load_workbook("test.xlsx")
sheet = workbook.active
sheet.merge_cells("B2:C4")
workbook.save('test.xlsx')
看看實際效果

可以看到原來區域 B2:C4 中都是分離的單元格,現在合并成一個單獨的單元格了,
拆分單元格
和合并單元格相對的,也有需要對單元格拆分的時候,拆分單元格使用的是表格 sheet 的 unmerge_cells() 方法,
再對上面的表格中被合并的單元格執行拆分處理
import openpyxl
workbook = openpyxl.load_workbook("test.xlsx")
sheet = workbook.active
sheet.unmerge_cells("B2:C4")
workbook.save('test.xlsx')
看看實際效果

現在又變回合并前的樣子了
設定字體
同樣的,表格里的有些字體也是可能需要特別設定,對于查閱內容比較有幫助,可以通過 openpyxl 的 styles 模塊的 Font() 方法執行配置,
下面試一下,把單元格 A1 的內容設定為字體大小 24,粗體,italic,字體名字為 ‘Times New Roman’
import openpyxl
from openpyxl.styles import Font
workbook = openpyxl.load_workbook("test.xlsx")
sheet = workbook.active
sheet.cell(row = 1,
column = 1).font = Font(size = 24,
italic = True,
bold = True,
name = 'Times New Roman')
workbook.save('test.xlsx')
看看實際效果

繪圖表
為了讓 excel 表格里的內容更加便于理解,離不開資料的可視化,excel 就提供了繪制圖表的功能來體現資料可視化,表格中資料和繪制的圖表關聯之后,資料的變更也會自動同步到圖表中,
現在就介紹用到自動化的方式來繪制圖表,舉個栗子,現在表格里插入一列資料,然后用 Reference() 選中表格中的資料域,創建柱狀圖表并關聯剛選中的資料域,設定表頭、xy軸標簽,再生成圖表,最后把作業簿保存到檔案 sample.xlsx,
import openpyxl
from openpyxl.chart import BarChart
from openpyxl.chart import Reference
workbook = openpyxl.Workbook()
sheet = workbook.active
# 插入資料到表格 sheet
for i in range(10):
sheet.append([i])
# 選中表格的資料域
values = Reference(sheet,
min_col = 1,
min_row = 1,
max_col = 1,
max_row = 10)
# 創建柱狀圖表
chart = BarChart()
# 關聯資料域到圖表
chart.add_data(values)
# 設定圖表表頭
chart.title = " 實體圖示 "
chart.x_axis.title = " X 軸 "
chart.y_axis.title = " Y 軸 "
# 生成圖表,并貼到單元格 C2
sheet.add_chart(chart, "C2")
workbook.save("sample.xlsx")
看看實際效果

當然,除了可以生成柱狀圖,還可以生成餅狀圖、線狀圖等等,這里不展開了,
圖片操作
有些時候也需要往 excel 表格里插入圖片,那么可以使用 openpyxl.drawing.image.Image 來實作,
由于 openpyxl.drawing.image.Image 依賴于第三方模塊 pillow,所以在執行除錯環境里還需要安裝庫 pillow,前面已經安裝,這里略過,
試一下把下面的圖插入新建的 excel 表格里

import openpyxl
from openpyxl.drawing.image import Image
workbook = openpyxl.Workbook()
sheet = workbook.active
img = Image("beauty.jpg")
sheet.add_image(img, 'B2')
workbook.save("img.xlsx")
看看實際效果

《Python:Excel自動化實踐入門篇》的介紹就到此結束了,由于篇幅受限,本系列教程分成了下面幾個部分,有興趣的朋友可點擊跳轉查閱
《Python:Excel自動化實踐入門篇 甲》
《Python:Excel自動化實踐入門篇 乙》
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/545309.html
標籤:其他
