type
status
date
slug
summary
tags
category
icon
password
Property
Jun 29, 2023 12:45 AM
因为老婆在处理公文格式上抱怨调节需要太长时间,所以我研究了一下。本来想推荐Markdown给老婆的,但是奈何正规公司或者政府机关等都有固定的Word模板来保持版式的一致性,虽然我认为内容创造者应该更注重内容本身,而非内容的版式,但是每次调节固定版式都占用大量无意义的时间。
申明:这篇文章我写了一个标题“Python用word模板文件生成公文”,然后用Notion AI的功能帮我生成了下面的文档,一直到步骤4都是Notion AI生成的。条理比较清楚,也说明了我想要表达的大致意思和一个简单的用法。 步骤4后面的文章,我将粘贴我用Monica生成的代码和步骤,以详细我所使用的方法。
Python用word模板文件生成公文
Python是一种高级编程语言,广泛应用于各种领域,包括自动化、数据分析和Web开发等。其中,Python还可以用于生成公文文件,让办公室工作更加高效和便捷。
如今,许多机构和公司都需要生成各种公文文件,如报告、合同、通知等。这些文件通常需要遵循一定的格式和样式,而使用Python可以自动化这个过程,减少手动操作和时间成本。具体而言,Python可以通过操作word文档模板来生成公文文件。以下是一些步骤:
步骤1:准备word模板文件
首先,需要准备一个word文档模板文件,包含公文所需的格式和样式。可以使用Microsoft Word等软件创建和编辑。在模板文件中,可以预留一些占位符,以便Python程序将数据填充到模板中。例如,可以在文件中添加“{title}”、“{content}”等占位符。
步骤2:安装python-docx库
接下来,需要安装Python的python-docx库。这个库提供了一些API,可以让Python程序读取、修改和创建word文档。可以使用pip安装:
步骤3:编写Python程序
现在,可以编写Python程序来读取word模板文件,并将数据填充到模板中。具体而言,可以使用python-docx库中的Document类来打开模板文件,使用paragraphs属性来访问段落,并使用runs属性来访问文本。可以使用replace方法将占位符替换为实际的数据。
以下是一个简单的例子:
步骤4:生成公文文件
最后,运行Python程序即可生成公文文件。程序将读取word模板文件,将占位符替换为实际数据,然后保存为新的文件。可以根据实际需要,修改程序中的占位符和数据。生成的公文文件可以使用Microsoft Word等软件打开和编辑。
总之,Python可以用于生成各种公文文件,让办公室工作更加高效和便捷。使用word文档模板和python-docx库,可以自动化公文生成过程,减少手动操作和时间成本。希望这篇文章能够帮助你了解Python生成公文的基本方法和步骤。
从这里开始粘贴Monica的聊天记录。
作为程序员帮我写一个有GUI的python程序,这个程序可以套用word模板生成新的文件。
当然,我可以帮您写一个有GUI的Python程序。以下是几个步骤:
- 首先,我们需要安装必要的库。您需要安装Python-docx库来处理Word文档。您可以使用以下命令在命令行中安装它:
- 接下来,我们需要创建一个GUI。您可以使用Python的Tkinter库来创建GUI。以下是一个简单的GUI示例代码:
- 然后,我们需要添加GUI元素,例如标签,文本框和按钮。以下是一个示例代码:
- 然后,我们需要将按钮与程序的实际功能连接起来。当用户单击按钮时,程序将读取模板文件,替换变量并保存为新文件。以下是一个示例代码:
- 最后,您需要将模板文件保存为template.docx,并将其放置在程序的工作目录中。
希望这能帮助您开始编写Python程序!
作为程序员帮我写一个有GUI的python程序,这个程序可以套用word模板生成新的文件,帮我给出程序代码和示例程序,里面需要一点示例变量。
当然,以下是一个简单的Python程序示例,它使用Python-docx库来生成新的Word文档,同时使用Tkinter库创建GUI:
在此示例中,我们使用
Label
,Entry
和Button
创建GUI元素。当用户单击“选择模板文件”按钮时,程序将打开文件对话框并加载所选模板文件。程序将替换模板中的“姓名”变量,并将新文件保存在与用户输入的文件名相同的位置。最后,程序将显示成功消息。请注意,此示例中只替换了一个变量。在实际使用中,您需要根据需要替换多个变量。
示例变量:如果您想要测试此程序,请尝试使用“Bob”或其他名称作为输入文件名。
把上面的程序给出输入框,输入框内容有:文件编号,第几版,签发:某某某,管理文件名称,正文内容(这是个富文本),制订人,制订日期,审核人,审核日期,发布日期,实施日期。
好的,以下是一个更新后的程序,它包含了您所需的所有输入框:
在此示例中,我们使用了多个
Entry
和一个Text
来获取用户输入。我们还使用了datetime
模块来获取当前日期,并将其插入了三个输入框中。这个程序还包含了一些错误处理代码,以确保程序能够正常运行并生成新的Word文档。根据Monica给的代码生成了程序,然后稍微查询了一下原理,继续完善问题。
上段程序改用docxtpl库进行渲染,正文内容是否支持表格输入?日期选择处是否能够可视化选择日期?
好的,以下是一个更新后的程序,它使用docxtpl库进行渲染。正文内容支持表格输入,日期选择处使用ttk库中的DateEntry小部件实现可视化日期选择:
在此示例中,我们使用了ttk库中的DateEntry小部件来创建可视化日期选择器,使用了docxtpl库的
RichText
类来处理富文本内容,并使用了new_subdoc()
方法来创建新的子文档以便于渲染表格。程序使用效果
公司文件模板
修改变量后模板
根据程序使用效果图内的填报,输出了如下格式,除了正文内容因为复制html语言导致字体和行距不符合规范外(假如文字是HTML复制到Windows的记事本中再次复制,就不会复制出带html标记的文字了,可以解决这个问题),其它的全部符合。
成品效果图
总结:Word模板生成使用AI编写,真的很方便,10分钟就可以给出可以执行的方案,加上本文内容前半部分也是使用AI生成,博客瞬间也可以生成,中间截图和调试程序花了点时间,简直不要太强。这次是第二次尝试AI,非常确信2023年应该就是AI的元年了,以后真的可以提升好多倍的生产力。
彩蛋:边写文章,边看文档,中间学习了一点tk的布局,将程序调整成如下视图,是不是比上面的更加好看?后期主要精力:
- 调整正文内容编辑,图文混排,加上表格,这个程序就趋近完美了
- 再有数据库的加持,把文件都像数据库一样保存,随时搜索,随时查看,随时生成,这样就不需要在电脑里面搞N多个文件夹,里面存N个docx文件了
AI不死,摸鱼不止
- 作者:集家嘴的壳玛🐸
- 链接:https://blog.kyeo.top/article/python-to-word
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。