? Python 高級定制 | 美化 Word 表格邊框與樣式(收貨記錄增強版)

之前我們完成了 Excel 數據提取、Word 表格寫入與合并,現在繼續 為 Word 表格添加高級樣式 裝扮,包括單元格邊框、背景填色、居中對齊、粗體、高亮行/列等,進一步增強表格的可讀性與專業性。


🖌? 樣式設置函數

1. 設置單元格邊框

使用底層 XML 操作定制邊框線條與樣式:

from docx.table import _Cell
from docx.oxml import OxmlElement
from docx.oxml.ns import qndef Set_cell_border(cell: _Cell, **kwargs):"""為單個單元格定制邊框(上/下/左/右以及內部邊線)用法示例請見文末腳注。"""tc = cell._tctcPr = tc.get_or_add_tcPr()tcBorders = tcPr.first_child_found_in("w:tcBorders")if tcBorders is None:tcBorders = OxmlElement('w:tcBorders')tcPr.append(tcBorders)for edge in ('start','top','end','bottom','insideH','insideV'):edge_data = kwargs.get(edge)if edge_data:tag = f"w:{edge}"elm = tcBorders.find(qn(tag)) or OxmlElement(tag)if elm.parent is None:tcBorders.append(elm)for key in ("sz","val","color","space","shadow"):if key in edge_data:elm.set(qn(f"w:{key}"), str(edge_data[key]))
  • 可設置線寬 (sz)、線型 (val)、顏色 (color)、陰影 (shadow) 等;

  • 仿照社區推薦函數 blog.csdn.netzenn.dev+4stackoverflow.com+4blog.csdn.net+4。

2. 設置單元格背景色

from docx.oxml import parse_xml
from docx.oxml.ns import nsdeclsdef Set_Background_Color(cell, rgbColor):"""為單元格填充背景色,使用 RGB 6 位十六進制格式。"""shading = parse_xml(f'<w:shd {nsdecls("w")} w:fill="{rgbColor}"/>')cell._tc.get_or_add_tcPr().append(shading)

通過 XML 指定 w:shd 節點,完成底色設置,常用來高亮重要數據行。


🎯 實戰樣式增強步驟

from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_ALIGN_VERTICAL
from docx.shared import Cm
from docx import Documentdoc = Document("收貨記錄.docx")
table = doc.tables[0]
max_row = len(table.rows)# 1?? 最后一行“總數”字體加粗、行高調大
run = table.cell(max_row-1, 4).paragraphs[0].runs[0]
run.font.bold = True
table.rows[max_row-1].height = Cm(1)# 2?? 去掉最后一行空白單元格邊框
for c in [0,1,2,3,6]:Set_cell_border(table.cell(max_row-1, c), bottom={"color":"#FFFFFF"}, start={"color":"#FFFFFF"}, end={"color":"#FFFFFF"})# 3?? 全表內容水平 & 垂直居中
for r in range(1, max_row):for c in range(len(table.columns)):cell = table.cell(r,c)cell.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTERcell.vertical_alignment = WD_ALIGN_VERTICAL.CENTER# 4?? 數量 ≥85 的單元格底色高亮
qty_values = [int(table.rows[i].cells[5].text) for i in range(1, max_row-1)]
for i, qty in enumerate(qty_values, start=1):if qty >= 85:Set_Background_Color(table.cell(i,5), "98F5FF")doc.save("收貨記錄-整理.docx")

🖼? 結果展示區?

?

? 補充說明

  • 邊框函數可執行細粒度控制,適配自定義邊框樣式 discuss.python.org+3github.com+3python-docx.readthedocs.io+3python-docx.readthedocs.io+8stackoverflow.com+8zenn.dev+8discuss.python.orgblog.csdn.net+1python-docx.readthedocs.io+1python-docx.readthedocs.iopython-docx.readthedocs.io;

  • 居中對齊函數依賴 WD_ALIGN_PARAGRAPH.CENTERWD_ALIGN_VERTICAL.CENTER

  • 設置行高使用 Cm 單位,在不同紙張環境下表現穩定;

  • 背景色函數適用于高亮關鍵行或列,增強視覺效果;

  • 可擴展方向:設置字體顏色、單元格寬度、條件樣式規則等。

?更多實用案例,代碼,素材如下:

自取鏈接:https://pan.quark.cn/s/a46f30accea2

👇 總結

通過本篇教程,你摸索到:

  • 使用 python-docx 操控 Word 表格樣式;

  • 如何設置單元格邊框、背景色、居中、加粗等格式;

  • 將原始數據美化為專業報表,適合收貨/發票/統計記錄等場景;

  • 可自由擴展樣式函數與模板,生成圖文并茂的 Word 報表。

如果你希望加封面頁、頁腳頁碼、樣式模板批量套用等功能,可以繼續告訴我,我可以幫你把這套工具包完善成一個完整的辦公自動化鏈!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87006.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87006.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87006.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Clickhouse源碼分析-TTL執行流程

第一種情況&#xff1a;無ttl_only_drop_parts配置 總體示例以及說明 如果沒有ttl_only_drop_parts的配置&#xff0c;過期數據的刪除&#xff08;這里是刪除&#xff0c;是將過期的數據從這個part刪除&#xff0c;并將過期的數據構成一個part&#xff0c;這個過期的part標記…

elementui修改radio字體的顏色和圓圈的樣式

改完 <div class"choose"><el-radio-group v-model"radioNum"><el-radio label"1" size"large">Option 1</el-radio><el-radio label"2" size"large">Option 2</el-radio>&l…

力扣3381. 長度可被 K 整除的子數組的最大元素和

由于數據范圍是2*10^5所以必然是遍歷一次&#xff0c;子數組必定要用到前綴和&#xff0c;之前的題目中總是遇到的是子數組的和能不能被k整除&#xff0c;而這里不一樣的是子數組的長度能不能被k整除&#xff0c;如果單純的枚舉長度必定超時&#xff0c;而看看題解得出的思路&a…

基于SSM的勤工助學系統的設計與實現

第1章 摘要 基于SSM框架的勤工助學系統旨在為學生、用工部門和管理員提供高效便捷的管理平臺。系統包括學生端、用工部門端和管理員端&#xff0c;涵蓋了從崗位發布、申請審核、工時記錄、薪資管理到數據統計等完整的功能需求。 學生可以通過系統首頁瀏覽最新的崗位信息和公告&…

2025年06月30日Github流行趨勢

項目名稱&#xff1a;twenty 項目地址 URL&#xff1a;https://github.com/twentyhq/twenty項目語言&#xff1a;TypeScript歷史 star 數&#xff1a;31,774今日 star 數&#xff1a;1,002項目維護者&#xff1a;charlesBochet, lucasbordeau, FelixMalfait, Weiko, bosiraphae…

creo 2.0學習筆記

Creo軟件從入門到精通——杜書森 1.1 Creo基本建模過程介紹 新建-零件-改名稱-取消使用默認模板&#xff0c;是因為默認的是英制尺寸&#xff0c;自定義可選擇mmns_part_solid&#xff0c;模板主要是設置模型的單位拉伸-選取FRONT-點擊草繪視圖&#xff0c;可進行草繪旋轉——…

ZNS初步認識—GPT

1. ZNS SSD 的基本概念 Zoned Namespace (ZNS): ZNS 是一種新的NVMe接口規范&#xff0c;它將SSD的邏輯塊地址空間劃分為多個獨立的、固定大小的“區域”&#xff08;Zones&#xff09;。區域 (Zone): ZNS SSD 的基本管理單元。每個區域都有自己的寫入指針&#xff08;write p…

【seismic unix生成可執行文件-sh文件】

Shell腳本文件&#xff08;.sh文件&#xff09;簡介 Shell腳本文件&#xff08;通常以.sh為擴展名&#xff09;是一種包含Shell命令的文本文件&#xff0c;用于在Unix/Linux系統中自動化執行任務。它由Shell解釋器&#xff08;如Bash、Zsh等&#xff09;逐行執行&#xff0c;常…

Debezium日常分享系列之:在 Kubernetes 上部署 Debezium

Debezium日常分享系列之&#xff1a;在 Kubernetes 上部署 Debezium 先決條件步驟部署數據源 (MySQL)登錄 MySQL db將數據插入其中部署 Kafka部署 kafdrop部署 Debezium 連接器創建 Debezium 連接器 Debezium 可以無縫部署在 Kubernetes&#xff08;一個用于容器編排的開源平臺…

利潤才是機器視覺企業的的“穩定器”,機器視覺企業的利潤 = (規模經濟 + 技術差異化 × 場景價值) - 競爭強度

影響機器視覺企業盈利能力的關鍵因素。這個公式本質上反映了行業的核心動態:利潤來自成本控制(規模化效應)和差異化優勢(技術壁壘與場景稀缺性的協同),但被市場競爭(內卷程度)所侵蝕。下面我將一步步拆解這個公式,結合機器視覺行業的特點(如工業自動化、質檢、安防、…

EPLAN 中定制 自己的- A3 圖框的詳細指南(一)

EPLAN 中定制 BIEM - A3 圖框的詳細指南 在智能電氣設計領域&#xff0c;圖框作為圖紙的重要組成部分&#xff0c;其定制的規范性和準確性至關重要。本文將以北京經濟管理職業學院人工智能學院的相關任務為例&#xff0c;詳細介紹在 EPLAN 軟件中定制 BIEM - A3 圖框的全過程…

macbook開發環境的配置記錄

前言&#xff1a;好多東西不記錄就會忘記 git ssh配置 當我們的沒有配置git ssh的時候&#xff0c;使用ssh下載的時候會顯示報錯“make sure you have the correct access rights and respository exits" 如何解決&#xff0c;我們先在命令行檢查檢查一下用戶名和郵箱是…

GitLab 18.1 高級 SAST 已支持 PHP,可升級體驗!

GitLab 是一個全球知名的一體化 DevOps 平臺&#xff0c;很多人都通過私有化部署 GitLab 來進行源代碼托管。極狐GitLab 是 GitLab 在中國的發行版&#xff0c;專門為中國程序員服務。可以一鍵式部署極狐GitLab。 學習極狐GitLab 的相關資料&#xff1a; 極狐GitLab 官網極狐…

[學習]M-QAM的數學原理與調制解調原理詳解(仿真示例)

M-QAM的數學原理與調制解調原理詳解 QAM&#xff08;正交幅度調制&#xff09;作為現代數字通信的核心技術&#xff0c;其數學原理和實現方法值得深入探討。本文將分為數學原理、調制解調原理和實現要點三個部分進行系統闡述。 文章目錄 M-QAM的數學原理與調制解調原理詳解一、…

圖書管理系統練習項目源碼-前后端分離-使用node.js來做后端開發

前端學習了這么久了&#xff0c;node.js 也有了一定的了解&#xff0c;知道使用node也可以來開發后端&#xff0c;今天給大家分享 使用node 來做后端&#xff0c;vue來寫前端&#xff0c;做一個簡單的圖書管理系統。我們在剛開始學習編程的時候&#xff0c;需要自己寫大量的項目…

【甲方安全視角】企業建設下的安全運營

文章目錄 一、安全運營的概念與起源二、安全運營的職責與定位三、安全運營工程師的核心能力要求四、安全運營的典型場景與應對技巧1. 明確責任劃分,避免“醫生做保姆”2. 推動機制:自下而上 vs. 自上而下3. 宣傳與內部影響力建設五、安全運營的戰略意義六、為何需要安全原因在…

03認證原理自定義認證添加認證驗證碼

目錄 大綱 一、自定義資源權限規則 二、自定義登錄界面 三、自定義登錄成功處理 四、顯示登錄失敗信息 五、自定義登錄失敗處理 六、注銷登錄 七、登錄用戶數據獲取 1. SecurityContextHolder 2. SecurityContextHolderStrategy 3. 代碼中獲取認證之后用戶數據 4. 多…

IPLOOK 2025上半年足跡回顧:連接全球,步履不停

2025年上半年&#xff0c;IPLOOK積極活躍于全球通信舞臺&#xff0c;足跡橫跨亞洲、歐洲、非洲與北美洲&#xff0c;我們圍繞5G核心網、私有網絡、云化架構等方向&#xff0c;向來自不同地區的客戶與合作伙伴展示了領先的端到端解決方案&#xff0c;深入了解各地市場需求與技術…

【Kafka】docker 中配置帶 Kerberos 認證的 Kafka 環境(全過程)

1. 準備 docker 下載鏡像 docker pull centos/systemd&#xff0c;該鏡像是基于 centos7 增加了 systemd 的功能&#xff0c;可以更方便啟動后臺服務 啟動鏡像 使用 systemd 功能需要權限&#xff0c;如果是模擬 gitlab services 就不要使用 systemd 的方式啟動 如果不使用 s…

用Python構建一個可擴展的多網盤聚合管理工具 (以阿里云盤為例)

摘要 本文旨在從開發者視角&#xff0c;探討并實踐如何構建一個命令行界面的、支持多網盤聚合管理的工具。我們將以阿里云盤為例&#xff0c;深入解析其API認證與核心操作&#xff0c;并用Python從零開始實現文件列表、重命名、分享等功能。更重要的是&#xff0c;本文將重點討…