带有html标签的文本转成docx文档

发布时间丨2023-02-18 16:39:23作者丨zhaomeng浏览丨5


项目需求将已采集的网页富文本转成docx文档,提供客户使用;

  1. 首先确认下python怎么生成docx文档
  2. 安装python 处理docx的库
    1. pip install python-docx

 使用python 生成docx文档

from docx import Document

# 创建新的Word文档对象
document = Document()
# 添加标题
title = "msds"
document.add_heading(level=1)
p = document.add_paragraph(title)
run = p.add_run()
font = run.font
font.bold = True
cnfinmsds="1111111111111111111"
# 添加正文内容
document.add_paragraph(cnfinmsds)

# 保存为.doc文件
filename = 'msds.docx'
document.save(filename)
print("已成功保存为", filename)

 我们已经学会如何使用python 创建一个docx文档了,那么将html的富文本转成字符串是不是就可以直接写入文档了,理论上时可以的,但是实际却是写入docx文档中的都是带有标签的字符串,不能满足我们的需求;

那么如果能够把html转成docx可以识别的文本,并且还能保留html富文本的格式,那就可以满足,现在我们思考如何将html转成docx可以显示的带有格式的文本?

首先安装python 库

pip install Spire.Doc

具体使用代码如下:

from spire.doc import *
from spire.doc.common import *
# 创建新的Word文档对象
document = Document()
kk = { "cnfinmsds" :"<header style=\"border-bottom: 1px solid; padding-bottom: 10px;\">\n        <h1 style=\"font-size: 28px; text-align: center;\" align=\"center\">化学品安全技术说明书</h1></header>"}
with open("msds1.html","w+",encoding='utf-8')as f:
    f.write(kk.get("cnfinmsds"))
# 加载一个HTML文件
document.LoadFromFile("msds1.html", FileFormat.Html, XHTMLValidationType.none)

# 将HTML文件保存为.docx格式
document.SaveToFile("15183-37-6_msds.docx", FileFormat.Docx2016)
document.Close()

先将带有标签的文本保存为html格式的文件,再利用spire的加载文件的方法读取html并保存为docx格式的文件;

结果如下:

推荐文章:文本生成词云图wordcloud