使用python将文字写入word文档中

Posted 等风者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用python将文字写入word文档中相关的知识,希望对你有一定的参考价值。

pip install python-docx
1.批量化往word文件中添加大批量重复的数据
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt #磅数
from docx.oxml.ns import qn #中文格式

#以上是docx库中需要用到的部分
import time
price = input(请输入今日价格:)
company_list = [客户1,客户2,客户3,客户4,客户5,客户6]
today1 = time.strftime("%Y-%m-%d",time.localtime())
today2 = time.strftime("%Y/%m/%d",time.localtime())
today = time.strftime("%Y{y}%m{m}%d{d}",time.localtime()).format(y=,m=,d=)

for i in company_list:
    document = Document()
    #设置文档的基础字体中文
    document.styles[Normal].font.name = u宋体
    #设置文档的基础字体西文
    document.styles[Normal].element.rPr.rFonts.set(qn(w:eastAsia),u宋体)

    # 初始化建立第一个自然段
    pl = document.add_paragraph()
    #对齐方式为居中,没有这句话默认左对齐
    pl.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run1 = pl.add_run(关于下达%s产品价格的通知%(today))
    run1.font.name = 微软雅黑
    run1.element.rPr.rFonts.set(qn(w:eastAsia),u微软雅黑)
    run1.font.size = Pt(21)
    #是否加粗
    run1.font.bold = True
    #前后距离5磅
    pl.space_before = Pt(5)
    pl.space_after = Pt(5)

    # 初始化建立第二个自然段
    p2 = document.add_paragraph()
    run2 = p2.add_run(i+":")
    #对客户的称呼
    run2.font.name = 仿宋_GB2312
    run2.element.rPr.rFonts.set(qn(w:eastAsia), u仿宋_GB2312)
    run2.font.size = Pt(16)
    # 是否加粗
    run2.font.bold = True

    # 初始化建立第三个自然段
    p3 = document.add_paragraph()
    run3 = p3.add_run("  根据公司安排,为提供优质客户服务,我单位拟定了今日黄金价格为%s元,特此通知."%price)
    # 对客户的称呼
    run3.font.name = 仿宋_GB2312
    run3.element.rPr.rFonts.set(qn(w:eastAsia), u仿宋_GB2312)
    run3.font.size = Pt(16)
    # 是否加粗
    run3.font.bold = True

    # 初始化建立第四个自然段
    p4 = document.add_paragraph()
    # 对齐方式为居中,没有这句话默认左对齐
    p4.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run4 = p4.add_run("(      联系人:小杨  电话:18888888888)")
    # 对客户的称呼
    run4.font.name = 仿宋_GB2312
    run4.element.rPr.rFonts.set(qn(w:eastAsia), u仿宋_GB2312)
    run4.font.size = Pt(16)
    # 是否加粗
    run4.font.bold = True
    document.save(%s-价格通知.docx% i)

2.添加图片

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt #磅数
from docx.oxml.ns import qn #中文格式
from docx.shared import Inches #图片尺寸

#以上是docx库中需要用到的部分
import time
price = input(请输入今日价格:)
company_list = [客户1,客户2,客户3,客户4,客户5,客户6]

today = time.strftime("%Y{y}%m{m}%d{d}",time.localtime()).format(y=,m=,d=)

for i in company_list:
    document = Document()
    # 设置文档的基础字体中文
    document.styles[Normal].font.name = u宋体
    # 设置文档的基础样式
    document.styles[Normal].element.rPr.rFonts.set(qn(w:eastAsia), u宋体)

    document.add_picture(banner.jpg,width=Inches(6))
    # 初始化建立第一个自然段
    pl = document.add_paragraph()
    # 对齐方式为居中,没有这句话默认左对齐
    pl.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run1 = pl.add_run(关于下达%s产品价格的通知 % (today))
    run1.font.name = 微软雅黑
    run1.element.rPr.rFonts.set(qn(w:eastAsia), u微软雅黑)
    run1.font.size = Pt(21)
    # 是否加粗
    run1.font.bold = True
    # 前后距离5磅
    pl.space_before = Pt(5)
    pl.space_after = Pt(5)

    # 初始化建立第二个自然段
    p2 = document.add_paragraph()
    run2 = p2.add_run(i + ":")
    # 对客户的称呼
    run2.font.name = 仿宋_GB2312
    run2.element.rPr.rFonts.set(qn(w:eastAsia), u仿宋_GB2312)
    run2.font.size = Pt(16)
    # 是否加粗
    run2.font.bold = True

    # 初始化建立第三个自然段
    p3 = document.add_paragraph()
    run3 = p3.add_run("  根据公司安排,为提供优质客户服务,我单位拟定了今日黄金价格为%s元,特此通知." % price)
    # 对客户的称呼
    run3.font.name = 仿宋_GB2312
    run3.element.rPr.rFonts.set(qn(w:eastAsia), u仿宋_GB2312)
    run3.font.size = Pt(16)
    # 是否加粗
    run3.font.bold = True

    table = document.add_table(rows=3,cols=3,style=Table Grid)
    table.cell(0,0).merge(table.cell(0,2))
    table_run1 = table.cell(0,0).paragraphs[0].add_run(xx产品报价表)
    table_run1.font.name = u隶书
    table_run1.element.rPr.rFonts.set(qn(w:eastAsia),u隶书)

    table.cell(1,0).text = 日期
    table.cell(1, 1).text = 价格
    table.cell(1, 2).text = 备注
    table.cell(2, 0).text = today
    table.cell(2, 1).text = str(price)
    table.cell(2, 2).text = ‘‘

    # 初始化建立第四个自然段
    p4 = document.add_paragraph()
    # 对齐方式为居中,没有这句话默认左对齐
    p4.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run4 = p4.add_run("               (联系人:小杨  电话:18888888888)")
    # 对客户的称呼
    run4.font.name = 仿宋_GB2312
    run4.element.rPr.rFonts.set(qn(w:eastAsia), u仿宋_GB2312)
    run4.font.size = Pt(16)
    # 是否加粗
    run4.font.bold = True
    #插入分页符
    document.add_page_break()
    p5 = document.add_paragraph()
    run4 = p5.add_run(此处是广告)
    document.save(%s-价格通知.docx % i)

 

以上是关于使用python将文字写入word文档中的主要内容,如果未能解决你的问题,请参考以下文章

Python自动化办公批量将文字写入Word文件中的具体操作

Python创建word文档并写入内容

一篇就够,python 操作 word 文档,使用 python-docx 落地实现,写入篇

如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?

python编写一个自动替换word文档文字程序

如何使用C#将包含文字、图片和表格的二进制数据写入到word文件中