python Word模块

相关包

python-docx

import docx

 

Word文档结构

 

python读取Word文档内容

 

doc.paragraphs  得到一个列表,包含了每个段落实例

from docx import Document

doc = Document("lian.docx")

print(doc.paragraphs)

 

paragraph.text  得到该段落的文字内容

from docx import Document

doc = Document("lian.docx")

for paragraph in doc.paragraphs:
	print(paragraph.text)

 

run.text 得到该文字块的文字内容

from docx import Document

doc = Document("lian.docx")

paragraph = doc.paragraphs[0]

runs = paragraph.runs

for run in runs:
	print(run.text)

 

python向Word文档写入内容

 

添加文字内容

添加标题

doc.add_heading(‘ 标题名称’,level=标题等级)

from docx import Document

doc = Document("lian.docx")

doc.add_heading("一级标题",level=1)

 

添加段落

doc.add_paragraph("段落文字内容")

paragraph1 = doc.add_paragraph("这是一个段落")
doc.add_paragraph("这又是一个段落")

 

添加文字块

paragraph.add_run("文字内容")

paragraph3 = doc.add_paragraph()
paragraph3.add_run("加粗").bold = True
paragraph3.add_run("普通")
paragraph3.add_run("斜体").italic = True

 

添加分页

doc.add_page_break()

doc.add_page_break()

 

添加图片及表格

添加图片

doc.add_picture("图片地址")

doc.add_picture("my.png")

 

添加图片,给定宽度或高度

dic.add_picture("图片地址", width=宽度, height=高度)

from docx.shared import Cm

doc.add_picture("my.png", width = Cm(5))  #设定宽度为5cm
doc.add_picture("my.png", heigtht = Cm(5))  #设定高度为5cm

Cm就是厘米

如果只给一个宽度或高度,另一个的尺寸会自动计算

 

添加表格

doc.add_table(rows=多少行, cols=多少列)

records = [
    ["学号","姓名","成绩"],
    [101,"李雷",95],
    [102,"韩梅梅",100],
    [103,"马冬梅",98]
]

table = doc.add_table(rows = 4, cols = 3)
for row in range(4):
	cells = table.rows[row].cells
	for col in range(3):
		cells[col].text = str(records[row][col])

 

总起来

from docx import Document
from docx.shared import Cm

doc = Document()

doc.add_heading("一级标题",level=1)

paragraph1 = doc.add_paragraph("这是一个段落")
paragraph2 = doc.add_paragraph("这又是一个段落")

paragraph3 = doc.add_paragraph()
paragraph3.add_run("加粗").bold = True
paragraph3.add_run("普通")
paragraph3.add_run("斜体").italic = True

doc.add_page_break()

doc.add_picture("my.png")

doc.add_picture("my.png", width = Cm(5))
doc.add_picture("my.png", height = Cm(5))


records = [
    ["学号","姓名","成绩"],
    [101,"李雷",95],
    [102,"韩梅梅",100],
    [103,"马冬梅",98]
]

table = doc.add_table(rows = 4, cols = 3)
for row in range(4):
	cells = table.rows[row].cells
	for col in range(3):
		cells[col].text = str(records[row][col])


doc.save("shi.docx")  #最后一定不要忘了保存

 

python调整Word文档样式

 

对文字字体样式进行修改

run.font.样式=xxx

 

注意这里设定字体的时候,如果是英文名称的字体就直接 run.font.name = ""  就可以了

如果是中文名称字体的话,要这样才行

        r = run._element.rPr.rFonts
        r.set(qn("w:eastAsia"), "微软雅黑")

from docx import Document
from docx.shared import Pt,RGBColor
from docx.oxml.ns import qn

doc = Document("lian.docx")

for paragraph in doc.paragraphs:
    for run in paragraph.runs:
        run.font.bold = True      #加粗
        run.font.italic = True    #斜体
        run.font.underline = True #下划线
        run.font.strike = True  #删除线
        run.font.shadow = True  #阴影
        run.font.size = Pt(20)  #20号字体的大小
        run.font.color.rgb = RGBColor(255,255,0)
        #run.font.name = "微软雅黑"
        r = run._element.rPr.rFonts
        r.set(qn("w:eastAsia"), "微软雅黑")

doc.save("shi.docx") 

 

修改段落样式

对齐样式

paragraph.alignment = 对齐方式

 

行间距

paragraph.paragraph_format.line_spacing = 2.0

注意用浮点数,2.0就表示两倍行间距

 

段前和段后间距

paragraph.paragraph_format.space_before = Pt(12)
paragraph.paragraph_format.space_after = Pt(12)

Pt(12)表示12磅

 

总起来

from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx import Document
from docx.shared import Pt,RGBColor
from docx.oxml.ns import qn

doc = Document()

paragraph = doc.add_paragraph()
paragraph. alignment = WD_ALIGN_PARAGRAPH.CENTER

paragraph.paragraph_format.line_spacing = 2.0


paragraph.paragraph_format.space_before = Pt(12)
paragraph.paragraph_format.space_after = Pt(12)


doc.save("shi.docx")

 

 

 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: Python可以用于处理Word和Excel文件。对于处理Excel文件,可以使用xlsxwriter模块来创建Excel XLSX文件,并将文本、数字、公式和超链接写入其中的多个工作表。该模块还支持格式化等功能,可以说是功能最齐全的Excel处理模块之一。此外,还可以使用pandas库来处理Excel文件。\[2\] 对于处理Word文件,可以使用python-docx模块来提取Word表格,并将其保存在Excel文件中。可以使用Document类从Word文件中读取表格数据,然后使用openpyxl模块的Workbook类创建一个新的Excel文件,并将表格数据写入其中。具体的代码示例如下: ```python from docx import Document from openpyxl import Workbook doc = Document(r"path_to_word_file.docx") table = doc.tables\[0\] workbook = Workbook() sheet = workbook.active for row in table.rows: row_data = \[\] for cell in row.cells: row_data.append(cell.text) sheet.append(row_data) workbook.save(filename=r"path_to_excel_file.xlsx") ``` 这段代码将从Word文件中提取第一个表格的数据,并将其保存在一个新的Excel文件中。\[3\] #### 引用[.reference_title] - *1* [python处理excel和word文档](https://blog.csdn.net/qq_29496135/article/details/104075368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Python的Excel/Word库](https://blog.csdn.net/xhtchina/article/details/125692712)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python自动化办公——python操作Excel、Word、PDF集合大全](https://blog.csdn.net/weixin_41261833/article/details/106028038)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值