Python 進階(六): Word 基本操作

目錄
    • 1. 概述
    • 2. 寫入
      • 2.1 標題
      • 2.2 段落
      • 2.3 表格
      • 2.4 圖片
      • 2.5 樣式
    • 3. 讀取

1. 概述

Word 是一個十分常用的文字處理工具,通常我們都是手動來操作它,本節我們來看一下如何通過 Python 來操作。

Python 提供了 python-docx 庫,該庫就是為 Word 文檔量身定制的,安裝使用 pip install python-docx 命令即可。

2. 寫入

首先,我們使用 Python 來創建一個 Word 文檔并向其中寫入一些內容。

2.1 標題

我們先來創建 Word 文檔并向其中添加標題,完整實現代碼如下所示:

from docx import Document# 創建文檔
document = Document()
# 標題
document.add_heading('標題0', 0)
document.add_heading('標題1', 1)
document.add_heading('標題2', 2)
# 保存
document.save('test.docx')

看一下效果:

2.2 段落

我們接著向 Word 文檔中添加段落內容,完整實現代碼如下所示:

from docx import Document# 創建文檔
document = Document()
# 標題
document.add_heading('標題0', 0)
document.add_heading('標題1', 1)
# 段落
document.add_paragraph('你們平時Word文檔用的多嗎?')
# 列表
document.add_paragraph('A:我們用的多', style='List Bullet')
document.add_paragraph('B:我們用的少', style='List Bullet')
document.add_paragraph('C:我們用的不多不少', style='List Bullet')
document.add_heading('標題2', 2)
# 段落
document.add_paragraph('我平時基本都是手動操作Word文檔,現在打算利用Python來操作它,''你們平時是手動操作Word文檔?如果是的話,一起來了解下如何通過''Python來操作吧!')
# 保存
document.save('test.docx')

看一下效果:

2.3 表格

我們接著向文檔中插入表格,完整實現代碼如下所示:

from docx import Document# 創建文檔
document = Document()
# 標題
document.add_heading('標題0', 0)
document.add_heading('標題1', 1)
# 段落
document.add_paragraph('你們平時Word文檔用的多嗎?')
# 列表
document.add_paragraph('A:我們用的多', style='List Bullet')
document.add_paragraph('B:我們用的少', style='List Bullet')
document.add_paragraph('C:我們用的不多不少', style='List Bullet')
document.add_heading('標題2', 2)
# 段落
document.add_paragraph('我平時基本都是手動操作Word文檔,現在打算利用Python來操作它,''你們平時是手動操作Word文檔?如果是的話,一起來了解下如何通過''Python來操作吧!')
# 表格
table = document.add_table(rows=3, cols=2, style='Table Grid')
# 表頭
hc = table.rows[0].cells
hc[0].text = '姓名'
hc[1].text = '年齡'
# 表體
bc1 = table.rows[1].cells
bc1[0].text = '張三'
bc1[1].text = '22'
bc2 = table.rows[2].cells
bc2[0].text = '李四'
bc2[1].text = '33'
# 保存
document.save('test.docx')

看一下效果:

2.4 圖片

我們接著向文檔中插入圖片,完整實現代碼如下所示:

from docx import Document
from docx.shared import Inches# 創建文檔
document = Document()
# 標題
document.add_heading('標題0', 0)
document.add_heading('標題1', 1)
# 段落
document.add_paragraph('你們平時Word文檔用的多嗎?')
# 列表
document.add_paragraph('A:我們用的多', style='List Bullet')
document.add_paragraph('B:我們用的少', style='List Bullet')
document.add_paragraph('C:我們用的不多不少', style='List Bullet')
document.add_heading('標題2', 2)
# 段落
document.add_paragraph('我平時基本都是手動操作Word文檔,現在打算利用Python來操作它,''你們平時是手動操作Word文檔?如果是的話,一起來了解下如何通過''Python來操作吧!')
# 表格
table = document.add_table(rows=3, cols=2, style='Table Grid')
# 表頭
hc = table.rows[0].cells
hc[0].text = '姓名'
hc[1].text = '年齡'
# 表體
bc1 = table.rows[1].cells
bc1[0].text = '張三'
bc1[1].text = '22'
bc2 = table.rows[2].cells
bc2[0].text = '李四'
bc2[1].text = '33'
# 分頁
# document.add_page_break()
# 圖片
document.add_picture('pic.jpg', width=Inches(1))
# 保存
document.save('test.docx')

看一下效果:

2.5 樣式

我們再設置一下基本樣式,比如:標題居中、字體加粗、首行縮進等,完整實現代碼如下所示:

from docx import Document
from docx.shared import Inches
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Cm, Pt# 創建文檔
document = Document()
style = document.styles['Normal']
# 標題
t0 = document.add_heading('標題0', 0)
# 居中
t0.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
document.add_heading('標題1', 1)
# 首行縮進兩個字符
paragraph_format = style.paragraph_format
paragraph_format.first_line_indent = Cm(0.74)
# 段落
p1 = document.add_paragraph('你們平時')
# 字體加粗
p1.add_run('Word文檔').bold = True
# 斜體
p1.add_run('用的多嗎?').italic = True
# 列表
document.add_paragraph('A:我們用的多', style='List Bullet')
document.add_paragraph('B:我們用的少', style='List Bullet')
document.add_paragraph('C:我們用的不多不少', style='List Bullet')
document.add_heading('標題2', 2)
# 段落
p2 = document.add_paragraph('我平時基本都是手動操作Word文檔,現在打算利用Python來操作它,''你們平時是手動操作Word文檔?如果是的話,')
run = p2.add_run('一起來了解下如何通過Python來操作吧!')
# 設置字體大小
run.font.size = Pt(12)
# 表格
table = document.add_table(rows=3, cols=2, style='Table Grid')
# 表頭
hc = table.rows[0].cells
hc[0].text = '姓名'
hc[1].text = '年齡'
# 表體
bc1 = table.rows[1].cells
bc1[0].text = '張三'
bc1[1].text = '22'
bc2 = table.rows[2].cells
bc2[0].text = '李四'
bc2[1].text = '33'
# 分頁
# document.add_page_break()
# 圖片
document.add_picture('pic.jpg', width=Inches(1))
# 保存
document.save('test.docx')

看一下效果:

3. 讀取

我們再來讀取一下之前 Word 文檔中寫入的內容,完整代碼實現如下所示:

from docx import Document# 打開文檔
document = Document('test.docx')
# 讀取標題、段落、列表內容
ps = [ paragraph.text for paragraph in document.paragraphs]
for p in ps:print(p)
# 讀取表格內容
ts = [table for table in document.tables]
for t in ts:for row in t.rows:for cell in row.cells:print(cell.text, end=' ')print()

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

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

相關文章

OpenLayers 入門指南【三】:API概要

目錄一、官方文檔二、核心類三、總結一、官方文檔 首頁右側有四個欄目分別是 Docs(文檔):也可以理解為使用指南,涵蓋一下四個模塊 Quick Start(快速入門):介紹如何快速引入并使用OpenLayers快速構建一個地圖應用FAQ(問答):介紹一些常見問題的…

JAVA面試寶典 -《Kafka 高吞吐量架構實戰:原理解析與性能優化全攻略》

🚀 Kafka 高吞吐量架構實戰:原理解析與性能優化全攻略 隨著大數據技術在日志收集、埋點監控、訂單流處理等場景的普及,Kafka 已成為流處理架構中的核心組件。它之所以能在海量數據場景下保持高吞吐、低延遲,源于其在架構層面和底…

把sudo搞壞了怎么修復:報錯sudo: /etc/sudo.conf is owned by uid 1000, should be 0

今天部署 NFS 的時候一不小心給/etc目錄下所有的文件都所有者給改了,然后使用sudo的時候就出現了下面的問題: sudo: /etc/sudo.conf is owned by uid 1000, should be 0 sudo: /etc/sudo.conf is owned by uid 1000, should be 0 sudo: /etc/sudoers i…

VUE前端項目開發1.0.1版本

項目包含用戶權限管理、表單提交、數據上傳下載、儀表盤可視化等功能,非常適合新手從零開始學習Vue3前端開發,下述包含所有開發源代碼,敬請食用 廢話少說先上圖: 登陸界面: 儀表盤管理系統: 用戶管理: 對于普通用戶只有儀表盤和個人信息界…

低代碼平臺能否完全取代傳統前端開發

低代碼平臺不能完全取代傳統前端開發,主要原因包括靈活性有限、性能優化能力不足、復雜定制需求難以實現。 低代碼平臺盡管能快速開發出相對標準化的應用,但在處理復雜、個性化的業務需求時,明顯表現出不足。尤其在需要精細化控制UI界面、高性…

Git 中如何比較不同版本之間的差異?常用命令有哪些?

回答重點1&#xff09; git diff <commit1> <commit2> &#xff1a;比較兩個指定的提交之間的差異。2&#xff09; git diff <branch1> <branch2> &#xff1a;比較兩個分支之間的差異。3&#xff09; git diff <path> &#xff1a;比較工作目錄…

MySQL 8.0 OCP 1Z0-908 題目解析(32)

題目125 Choose three. Identify three functions of MySQL Enterprise Monitor. □ A) Analyze query performance. □ B) Start a logical backup. □ C) Determine the availability of monitored MySQL servers. □ D) Centrally manage users. □ E) Start a MySQL Enterp…

Spring處理器和Bean的生命周期

Spring處理器和Bean的生命周期Spring處理器是對Bean對象的的開發可以對BeanDifinition進行操作&#xff0c;例如動態添加、修改BeanDefinition、動態修改Bean。&#xff0c;也可以在Bean對象創建后對Bean對象進行代理增強。注意&#xff1a;對于處理器要又一個正確的認知&#…

Spring Framework源碼解析——BeanFactory

版權聲明 本文原創作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl1. BeanFactory 概述 BeanFactory 是 Spring IoC 容器的最基礎接口&#xff0c;它定義了獲取、配置和管理 Bean 的核心方法。它是 Spring 框架中容器體系的頂層接口之一&#…

C# 計算梯形面積和周長的程序(Program to calculate area and perimeter of Trapezium)

梯形是至少有一對邊平行&#xff0c;其他兩條邊可以不平行的四邊形。平行邊稱為梯形的底&#xff0c;其他兩條邊稱為梯形的腿。平行邊之間的垂直距離稱為梯形的高。公式 &#xff1a; 梯形面積&#xff1a; 0.5 * (a b) * h梯形周長&#xff1a; a b c d例子&#xff1a; 輸…

【計算機考研(408)- 數據結構】數組和特殊矩陣

數組和特殊矩陣 數組 數組的定義 數組是由n(n>1)個相同類型的數據元素構成的有限序列。每個數據元素稱為一個數組元素&#xff0c;每個元素在n個線性關系中的序號稱之為該元素的下標&#xff0c;下標的取值范圍稱為數組的維界。 數組是[[線性表]]的推廣&#xff0c;一維數組…

Agent架構與工作原理:理解智能體的核心機制

Agent架構與工作原理&#xff1a;深入理解智能體的核心機制 AI Agent的核心組成部分 一個完整的AI Agent通常由以下幾個核心模塊組成&#xff1a; 1. 規劃模塊&#xff08;Planning Module&#xff09; 規劃模塊是Agent的"大腦"&#xff0c;負責制定行動策略。它接收…

解決vscode中vue格式化后縮進太小的問題,并去除分號 - 設置Vetur tabSize從2到4,設置prettier取消分號semi

效果圖 左邊原來的&#xff0c;右邊是設置后的效果 實現步驟 安裝插件 Vetur 安裝插件 prettier Vscode > 文件 > 首選項 > 設置 搜索vetur > 找到比較下面的“Vetur > Format > Options: Tab Size” > 設置縮進為4 在附近找到“Vetur > Format: De…

計算機發展史:電子管時代的輝煌與局限

在計算機的發展歷程中&#xff0c;電子管時代猶如一顆璀璨的流星&#xff0c;短暫卻耀眼。它接過了機械計算裝置的接力棒&#xff0c;以電子管為核心元件&#xff0c;開啟了計算機的電子化征程&#xff0c;為后續的計算機發展奠定了堅實的基礎。這段從 20 世紀 40 年代到 50 年…

div和span區別

區別1區別2App.vue代碼 <template><div class"container"><h1>&#x1f3af; DIV 和 SPAN 標簽的區別演示</h1><!-- 第一部分&#xff1a;基本區別演示 --><section class"demo-section"><h2>&#x1f4e6; 1. …

channel_up和lane_up

一、channel_up 1.當aurora通道完成初始化&#xff0c;channel準備發送或者接收數據的時候拉高 2.channel_up屬于協議的鏈路層 3.當所有的通道的lane_up都成功拉高&#xff0c;并且完成通道綁定channel bonding,就拉高channel_up二、lane_up 1.lane初始化成功后拉高&#xff1b…

GDPR合規團隊協作軟件:保障企業數據安全的關鍵

隨著數據隱私問題日益成為全球關注的焦點&#xff0c;GDPR&#xff08;General Data Protection Regulation&#xff0c;通用數據保護條例&#xff09; 的實施成為企業在數據管理中的一項重要法律要求。特別是對于需要在團隊之間協作并共享信息的企業來說&#xff0c;選擇合規的…

【圖像質量評價指標】信噪比(Signal-to-Noise Ratio,SNR)

文章目錄一、基本定義二、判斷圖像信噪比是否過低&#xff08;經驗值&#xff0c;僅供參考&#xff09;三、SNR與圖像質量指標關系四、評估方法 代碼復現 —— 評估一張圖像的信噪比&#xff08;1&#xff09;有參考圖像&#xff08;推薦&#xff09;&#xff08;2&#xff09…

Java 實現 TCP 一發一收通信

在網絡編程中&#xff0c;TCP&#xff08;傳輸控制協議&#xff09;憑借其可靠傳輸的特性&#xff0c;成為需要確保數據完整性場景的核心選擇。本文將基于一段 Java 代碼實例&#xff0c;全面解析 TCP 單向通信的實現邏輯&#xff0c;幫助開發者掌握 TCP 編程的基礎框架與底層原…

docker-compose啟動前后端分離項目(單機)

&#x1f31f;docker-compose啟動前后端 &#x1f4c1;準備文件 xzs-mysql.sql&#xff08;數據庫腳本&#xff09;xzs-3.9.0.jar&#xff08;后端代碼&#xff09;application-prod.yml&#xff08;后端配置文件&#xff09;entry.sh&#xff08;后端啟動腳本&#xff09;exam…