Python—docx 简单入门


强大的学习官网:https://python-docx.readthedocs.io/en/latest/index.html

一、简单入门

from docx import Document
from docx.shared import Inches

document = Document()                          # 打开一个基于默认“模板”的空白文档
document.add_heading('Document Title', 0)      # 添加标题

p = document.add_paragraph('A plain paragraph having some ')    # 增加一段
p.add_run('bold').bold = True                                   # 设置样式
p.add_run(' and some ')
p.add_run('italic.').italic = True

document.add_heading('Heading, level 1', level=1)
document.add_paragraph('Intense quote', style='Intense Quote')

document.add_paragraph(
    'first item in unordered list', style='List Bullet'
)
document.add_paragraph(
    'first item in ordered list', style='List Number'
)

document.add_picture('./gggg/001.png', width=Inches(1.25))     # 插入图片(默认居左)

records = (
    (3, '101', 'Spam'),
    (7, '422', 'Eggs'),
    (4, '631', 'Spam, spam, eggs, and spam')
)

table = document.add_table(rows=1, cols=3) # 添加表
hdr_cells = table.rows[0].cells            # 设置表首行标题
hdr_cells[0].text = 'Qty'                  # 表首行标题赋值
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for qty, id, desc in records:              # for循环将records内容赋值到单元格内
    row_cells = table.add_row().cells
    row_cells[0].text = str(qty)
    row_cells[1].text = id
    row_cells[2].text = desc

document.add_page_break()                 # 添加分页符

document.save('./demo.docx')              # 保存文件     

效果展示:
在这里插入图片描述

二、读取分析docx

from win32com import client as wc
import docx


def read_docx(docx_path):
    if docx_path[-4:] == '.doc':
        docx_path= doSaveAas(docx_path)
    file = docx.Document(docx_path)
    print("段落数:" + str(len(file.paragraphs)))  # 每个回车隔离一段

    for para in file.paragraphs:                 # 输出每一段的内容
        print(para.text)
    for i in range(len(file.paragraphs)):        # 输出段落编号及段落内容
        print("第" + str(i) + "段的内容是:" + file.paragraphs[i].text)

def doSaveAas(docx_path):
    word = wc.Dispatch('Word.Application')
    doc = word.Documents.Open(docx_path)        # 目标路径下的文件
    doc.SaveAs(docx_path[:-4]+'.docx', 12, False, "", True, "", False, False, False, False) # 转化后路径下的文件
    doc.Close()
    word.Quit()
    return docx_path[:-4]+'.docx'

'''
段落数:5
问题分析:
python利用python-docx (0.8.6)库可以读取.docx文件或.txt文件,且一路畅通无阻,而对.doc文件本身python是无能为力的,那有很多同学就不服气,我手动把.doc文件的后缀名改为.docx或.txt不就解决问题了吗?答案是不能的,简单修改后缀名,那么文件就被你玩坏了,别说打不开,就是打开也是天书啊(乱码)。python无法操作.doc文件是他的先天不足,但是我们不要钻牛角尖一定要在互联网上找到一种源码直接读取.doc文件,一调用就好了,但是不幸的是,你可能在网上也找不到解决方案。正当我一筹莫展之时,我将.doc文档利用手动的方式“另存为”.docx文档,

就能够成功打开转化后的.docx文档,于是我就尝试利用代码方式完成这个手动的“另存为”功能,问题得以解决。

第0段的内容是:问题分析:
第1段的内容是:python利用python-docx (0.8.6)库可以读取.docx文件或.txt文件,且一路畅通无阻,而对.doc文件本身python是无能为力的,那有很多同学就不服气,我手动把.doc文件的后缀名改为.docx或.txt不就解决问题了吗?答案是不能的,简单修改后缀名,那么文件就被你玩坏了,别说打不开,就是打开也是天书啊(乱码)。python无法操作.doc文件是他的先天不足,但是我们不要钻牛角尖一定要在互联网上找到一种源码直接读取.doc文件,一调用就好了,但是不幸的是,你可能在网上也找不到解决方案。正当我一筹莫展之时,我将.doc文档利用手动的方式“另存为”.docx文档,
第2段的内容是:
第3段的内容是:就能够成功打开转化后的.docx文档,于是我就尝试利用代码方式完成这个手动的“另存为”功能,问题得以解决。
第4段的内容是:
'''

在这里插入图片描述
参考与鸣谢
http://www.bubuko.com/infodetail-2125795.html
https://www.cnblogs.com/rencm/p/6285304.html
https://blog.csdn.net/qq_41262248/article/details/81240163

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SongpingWang

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值