让python做办公自动化,让你闲下来

让python做自动化,让你闲下来

上节对python的excel Python办公自动化系列:自动操作Excel自动化做了介绍。这次介绍如何用python对word进行自动生成。

安装模块

pip install docx

使用文档

python-docx允许您创建新文档以及更改现有文档。实际上,它只允许您更改现有文档; 只是如果你从一个没有任何内容的文档开始,它最初可能会觉得你是从头开始创建一个。

这个特征是一个强大的特征。文档的很多外观取决于删除所有内容时剩下的部分。样式和页眉和页脚等内容与主要内容分开包含,允许您在起始文档中进行大量自定义,然后出现在您生成的文档中。

让我们逐步完成一个示例创建文档的步骤,从您可以对文档执行的两个主要事项开始,打开并保存它。

打开文件

最简单的入门方法是打开一个新文档而不指定要打开的文件:

from docx import Documentdocument = Document()document.save('test.docx')

这将从内置的默认模板创建一个新文档,并将其保存为名为“test.docx”的文件。所谓的“默认模板”实际上只是一个没有内容的Word文件,与已安装的python-docx 软件包一起存储。它与您 在选择Word的文件>从模板新建...菜单项后选择Word 文档模板大致相同。

真的打开文件

模板创建一个新文档

如果想要对最终文档进行更多控制,或者如果要更改现有文档,则需要使用文件名打开一个文档:

document = Document('existing-document-file.docx')document.save('new-file-name.docx')

注意事项:

  • 您可以通过这种方式打开任何Word 2007或更高版本的文件(Word 2003及更早版本中的.doc文件将不起作用)。虽然您可能无法操作所有内容,但已经存在的任何内容都会加载并保存得很好。功能集仍在构建中,因此您无法添加或更改标题或脚注之类的内容,但如果文档中包含它们,python-docx则可以让它们保持单独且足够智能以保存它们而无需实际了解它们是什么。
  • 如果您使用相同的文件名打开并保存文件,python-docx将乖乖地覆盖原始文件而不会窥视。你要确保这是你想要的。

打开'文件'文档

python-docx可以从所谓的类似文件的对象中打开文档。它还可以保存到类似文件的对象。当您希望通过网络连接或数据库获取源文档或目标文档并且不希望(或不允许)与文件系统交互时,这可能很方便。实际上,这意味着您可以传递打开的文件或StringIO / BytesIO流对象来打开或保存文档,如下所示:

f = open('foobar.docx', 'rb')document = Document(f)f.close()# orwith open('foobar.docx', 'rb') as f: source_stream = StringIO(f.read())document = Document(source_stream)source_stream.close()...target_stream = StringIO()document.save(target_stream)

该'rb'文件打开方式参数不是必需的所有操作系统上。默认情况下'r'有时足够,但Windows上至少需要某些版本的Linux才能使用'b'(选择二进制模式),以允许Zipfile打开文件。

好的,祝贺您成功打开了一个文件,并且将它保存下来。下一步将会对如何自动操作生成word里的内容.

java根据模板生成word文档_Python办公自动化:使用python来自动生成word文档相关推荐

  1. python 文案自动生成_Python应用 | 利用COM技术自动生成IBM i2舞弊关系分析图表

    点蓝字关注  ↑↑↑ 数据化审计:问题导向.应用至上.解决痛点 内容摘要 什么是COM技术 IBM I2 Analyst's Notebook软件介绍 如何使用Python调用I2的COM接口,批量自 ...

  2. python生成yaml_使用python脚本自动生成K8S-YAML的方法示例

    1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service metadata: name: ${jarName} ...

  3. python生成yaml_使用python脚本自动生成K8S-YAML

    使用python脚本自动生成K8S-YAML 1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service met ...

  4. 50行python代码自动生成文章

    不知道从小到大,我们被迫写了多少心得体会,多少人生感想,如果真情实地的去感受写作然后成长当然很好,但是更多的都是形式主义的需求,并没有人去看里面的内容,白白浪费我们多少大好时光,有时候我们ctrl,C ...

  5. 自动生成Android界面,面向Android的Web Service界面自动生成技术研究

    摘要: 据统计,开发人员在开发应用程序的过程中,接近一半的代码用于用户界面部分,大约一半的运行时间用于执行这一部分.所以,减少用户界面部分的开发代码和运行时间,能有效提高程序的运行效率.智能家居中,由 ...

  6. react骨架屏自动生成_用纯 DOM 的方式结合 Puppeteer 自动生成网页骨架屏

    骨架屏是在页面数据尚未加载完成前先给用户展示出页面的大致结构,直到请求数据返回后再显示真正的页面内容:随着单页应用( SPA )的越来越流行,单页应用的用户体验也越来越得到前端开发者的关注:为了优化用 ...

  7. AI自动文本生成怎么做?这几个工具能自动生成文章

    在今天这个数字化时代,AI技术的迅猛发展让我们惊叹不已.其中,AI自动文本生成技术更是让人瞠目结舌.无论是新闻报道.短篇小说.还是商业广告,它都可以通过算法与数据的组合,自动生成高质量.连贯流畅的文章 ...

  8. kettle使用数据库来生成序列_Python办公自动化:使用python来自动生成word文档

    让python做办公自动化,让你闲下来 让python做自动化,让你闲下来 上节对python的excel Python办公自动化系列:自动操作Excel自动化做了介绍.这次介绍如何用python对w ...

  9. python读取word文档结构图_python根据文章标题内容自动生成摘分享的实例

    如何用Python玩转TF-IDF之寻找相似文章并生成摘要 应用1:关键词自动生成 核心思想是对于某个文档中的某个词,计算其在这个文档中的标准化TF值,然后计算这个词在整个语料库中的标准化IDF值.在 ...

最新文章

  1. 合成孔径成像算法与实现_浅析太赫兹成像技术在消防领域中的应用前景
  2. linux环境安装LFTP_02
  3. CSS的一些基本样式的简单介绍
  4. 模块化Java简介(转载infoq)
  5. 无废话ExtJs 入门教程八[脚本调试Firefox:firebug]
  6. 对于Typora(markdown)的基本使用
  7. [转]OPENGL中GLU和GLUT工具箱
  8. 谈谈如何用eoLinker管理各类API接口
  9. ArcMap没有工具条和菜单栏的解决方法
  10. jquery ajax 方法及各参数详解
  11. qq音乐linux版本下载地址,QQ音乐linux下载
  12. vgc机器人编程1到13题_工业机器人编程与实操 期末试题
  13. FID图像质量评估指标
  14. 计算机声音与视频教程,电脑怎么录屏幕视频带声音 电脑录屏幕视频带声音教程...
  15. 机器人学回炉重造(4):动力学仿真(附牛顿-欧拉递归逆动力学算法matlab代码)
  16. android 同步短信到iphone,教你把短信从安卓同步到iPhone
  17. 华为副总裁的演讲,披露了华为在5G领域最新布局
  18. CSS3 低多边形(Low Poly)设计及开发实例 - 简单的字母
  19. html如何写图片路径?
  20. 表格操作系列——在指字的区域内增加或删除行不影响排版

热门文章

  1. OpenCV-通道分离cv::split
  2. android 球形进度,android仿360手机卫士的自定义波浪球形进度View 滚动痕迹
  3. 李海自学java_JAVA程序设计 实验一
  4. getlock mysql_mysql中的get_lock锁机制解析
  5. python实现排列组合公式算法_Python实现卡尔曼滤波算法之贝叶斯滤波
  6. 亲密关系沟通-【归属感】提升归属感的沟通方法
  7. java nio 关闭channel_JAVA NIO(二)Channel通道
  8. java的程序编码_Java 程序编码规范(初学者要牢记)
  9. pyspider all 只启动了_Python 爬虫:Pyspider 安装与测试
  10. java char character_Java char 与 Character