专栏首页算法与编程之美Python|利用第三方库编辑word的基本操作

Python|利用第三方库编辑word的基本操作

问题描述

众所周知python有很多第三方库,这也是python简单实用的原因,有时用python处理word文档就需要安装python-docx库。

解决方案

1 安装python-docx库

首先找到python根目录(就是有python.exe的文件夹)打开Scripts文件夹

Shift+鼠标右键选择在此处打开powershell窗口或者cmd窗口输入pip install python-docx按下回车等待安装完成。

2 基本操作语法

2.1打开文档

document = Document()

不填默认为新建一个文档

2.2加入不同等级的标题

document.add_heading(u'总标题',0) document.add_heading(u'一级标题',1) document.add_heading(u'二级标题',2)

2.3添加文本

paragraph = document.add_paragraph(u'文本内容')

2.4设置字号

run = paragraph.add_run(u'设置字号、') run.font.size = Pt(24)

2.5设置英文字体

run = paragraph.add_run('Set Font,') run.font.name = 'Consolas'

2.6设置中文字体

run = paragraph.add_run(u'设置中文字体、') run.font.name=u'宋体' r = run._element r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

2.7设置斜体

run = paragraph.add_run(u'斜体、') run.italic = True

2.8 设置粗体

run = paragraph.add_run(u'粗体').bold = True

2.9增加引用

document.add_paragraph('Intense quote', style='Intense Quote')

2.10 增加列表

document.add_paragraph( u'无序列表元素1', style='List Bullet' ) document.add_paragraph( u'无序列表元素2', style='List Bullet' )

Style='List Bullet'为无序

Style='List Number'为有序

2.11添加图片

document.add_picture('1.png', width=Inches(1.25))

1.png为图片名称(必须与代码文件在同一个文件夹内)

2.12增加表格

table = document.add_table(rows=1, cols=3) hdr_cells = table.rows[0].cells hdr_cells[0].text = 'Name' hdr_cells[1].text = 'Id' hdr_cells[2].text = 'Desc'

2.13 再增加3行表格元素

for i in range(3): row_cells = table.add_row().cells row_cells[0].text = 'test'+str(i) row_cells[1].text = str(i) row_cells[2].text = 'desc'+str(i)

2.14增加分页

document.add_page_break()

2.15保存文件

document.save(u'测试.docx')

3 完整代码

from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.oxml.ns import qn document = Document() document.add_heading(u'MS WORD写入测试',0) document.add_heading(u'一级标题',1) document.add_heading(u'二级标题',2) paragraph = document.add_paragraph(u'我们在做文本测试!') run = paragraph.add_run(u'设置字号、') run.font.size = Pt(24) run = paragraph.add_run('Set Font,') run.font.name = 'Consolas' run = paragraph.add_run(u'设置中文字体、') run.font.name=u'宋体' r = run._element r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') run = paragraph.add_run(u'斜体、') run.italic = True run = paragraph.add_run(u'粗体').bold = True document.add_paragraph('Intense quote', style='Intense Quote') document.add_paragraph( u'无序列表元素1', style='List Bullet' ) document.add_paragraph( u'无序列表元素2', style='List Bullet' ) document.add_paragraph( u'有序列表元素1', style='List Number' ) document.add_paragraph( u'有序列表元素2', style='List Number' ) document.add_picture('1.png', width=Inches(1.25)) table = document.add_table(rows=1, cols=3) hdr_cells = table.rows[0].cells hdr_cells[0].text = 'Name' hdr_cells[1].text = 'Id' hdr_cells[2].text = 'Desc' for i in range(3): row_cells = table.add_row().cells row_cells[0].text = 'test'+str(i) row_cells[1].text = str(i) row_cells[2].text = 'desc'+str(i) document.add_page_break() document.save(u'测试.docx')

4 生成效果

本文分享自微信公众号 - 算法与编程之美(algo_coding)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微信小程序|基本页面设置

    1 最近几年微信小程序特别的火,快捷容易不需要下载所以不占内存,给我们带来方便。支付,小游戏,应用等很多地方都需要小程序。其实小程序的开发和网页制作基本一样,都...

    算法与编程之美
  • 微信小程序|页面的生命周期函数onLoad

    相信小程序的初学者对js页面是很模糊的总感觉看不懂,其实js页面总的来说就是一个Page()函数。用Page()函数来注册一个页面,接受一个object参数,实...

    算法与编程之美
  • 微信小程序|突出优点

    为了避免用户在微信中使用小程序服务时,注意力被周围复杂环境干扰,小程序在设计时应该注意减少无关的设计元素对用户目标的干扰,礼貌地向用户展示程序提供的服务,友好地...

    算法与编程之美
  • 2014年wolfram公司首次中国区专题讲座

    WolframChina
  • 具体数学-第6课(下降阶乘幂)

    事实上,我们可以将正数和负数分开求和,因为正数求和我们已经解决了,所以我们定义:

    godweiyang
  • 13. Vue v-for指令的使用方式以及使用key解决组件问题

    当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略。如果数据项的顺序被改变,Vue将不是移动 DOM 元素来匹配数据项...

    Devops海洋的渔夫
  • javascript异步与promise

    我们说处理javascript异步最常用的方式就是通过回调函数,对于回调函数我们昨天对此做了介绍 简单快速, 我们一般使用嵌套回调或者链式回调,会产生以下问题

    陌上寒
  • Android App 国际化

    internationalization ( 国际化 )简称 i18n,因为在 i 和 n 之间还有 18 个字符,localization (本地化),简称L...

    QQ音乐技术团队
  • 未来的供应链将由物联网提供动力

    随着企业继续通过第三方外包将业务范围缩小到核心流程,全球供应链不断增长。这就带来了对大量资产和流程进行跟踪和控制的需要。为了跟上这一趋势,企业正在采用物联网支持...

    物流IT圈
  • 脑洞大开——木盒也能做Jetson机器人!

    谁说机器人一定是”铁齿铜牙“?西北工业大学的老师发挥创造力,用木盒和Jetson TK1开发板也做了一个机器人,让我们看看他是怎么做到的吧? ? 车体 ...

    GPUS Lady

扫码关注云+社区

领取腾讯云代金券