Python:Excel自動化實踐入門篇 乙【送圖書活動繼續】

来源:https://www.cnblogs.com/englyf/archive/2023/03/01/17166664.html
-Advertisement-
Play Games

*以下內容為本人的學習筆記,如需要轉載,請聲明原文鏈接 微信公眾號「englyf」https://mp.weixin.qq.com/s/y-npGelPJwmx3iNvHaXRTg 本文上接《Python:Excel自動化實踐入門篇 甲》 正文開始之前,提醒一下朋友們,送圖書的活動還在繼續,朋友們請 ...


*以下內容為本人的學習筆記,如需要轉載,請聲明原文鏈接 微信公眾號「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自動化實踐入門篇 乙》


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這篇要討論的這個概念,應該也不是我發明的新詞,叫 URL 與狀態的雙向綁定,字面意思來說,在刷新頁面或跳轉頁面時解析 URL 並對應更新組件的狀態,在組件狀態更新時同步更新 URL,為什麼要引入這種機制嘞? ...
  • 按照官網初始化nuxt3項目時: 輸入命令 npx nuxi init nuxt3demo 發現會失敗報錯: getaddrinfo ENOENT raw.githubusercontent.com 報錯 解決方案: 手動clone代碼 git clone -b v3 https://github. ...
  • CSS中的BFC、IFC、GFC和FFC是佈局模型中的概念,用於描述元素在文檔流中的佈局行為。它們分別代表塊級格式化上下文(Block Formatting Context)、內聯級格式化上下文(Inline Formatting Context)、網格格式化上下文(Grid Formatting ...
  • tips:如果本文對你有用,請愛心點個贊,提高排名,讓這篇文章幫助更多的人。謝謝大家!比心❤~ 如果解決不了,可以在文末加我微信,進群交流一起學習探討。 背景 項目的要求需要實現規範化,針對項目內所有的滾動條做優化,需要按照UE調整實現:滾動時出現滾動條,停留三秒後,自動消失 由於是就項目的優化,所 ...
  • 我們是袋鼠雲數棧 UED 團隊,致力於打造優秀的一站式數據中台產品。我們始終保持工匠精神,探索前端道路,為社區積累並傳播經驗價值。 前言 數棧作為雲原⽣⼀站式⼤數據開發平臺,從2016年發佈第⼀個版本開始,數棧就始終堅持著以技術為 核⼼、安全為底線、提效為⽬標、中台為戰略的思想,堅定不移地⾛國產化信 ...
  • 本文是系列第四篇。系列文章: 現代圖片性能優化及體驗優化指南 - 圖片類型及 Picture 標簽的使用 現代圖片性能優化及體驗優化指南 - 響應式圖片方案 現代圖片性能優化及體驗優化指南 - # 縮放精細化展示及避免佈局偏移、拉伸 圖片資源,在我們的業務中可謂是占據了非常大頭的一環,尤其是其對帶寬 ...
  • cola前言 COLA提供了一整套代碼架構,拿來即用。 其中包含了很多架構設計思想,包括討論度很高的領域驅動設計DDD等。 COLA 的分層是一種經過改良的三層架構,主要是講傳統的業務邏輯層拆分為展示層、應用層、領域層和基礎設施層。 展示層(Presentation Layer):負責以 Rest ...
  • 1.簡介 定義:將某個對象中圍繞某個主題的一些列行為委托給一個代理對象去執行,代理對象將控制和管理對原有對象的訪問,調用者想要訪問目標對象,必須通過代理對象去間接訪問,代理對象在調用方和目標對象之間可以起到”中介“的作用。代理一詞本身,其實就可以很好發現的關鍵點,如果暫時無法理解晦澀的概念,那麼在閱 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...