Excel转换任意格式Word

1、引言

小屌丝:鱼哥,有一事相求?小鱼:何事,说来听听!小屌丝:BOSS让我把exce转成word, 小鱼:这还不简单,你直接修改文件后缀名不就行了。小屌丝:你可以伤害我,但是不能侮辱我… 小鱼:额…好吧,就这一点要求吗?小屌丝:不是的,excel中题目答案,老板让我给区分来,整理成两个word文档 小鱼:呦呵… BOSS就是BOSS,要求都这么高大上 小屌丝:BOSS说了,下个月能不能涨薪,就看这次表现了… 小鱼:这… 不是事啊~ ~ 小屌丝:接文件… 小鱼:…

为了信息安全,小鱼就把小屌丝的文件内容给替换一下。这样能更直观的展示,也方便理解。

文档内容截图

2、excel转换成word

看到上面的截图,我们来想一下,一般的转换方式,无非就两种:

  • 手动转换- 自动转换如果不借助于收费软件,手动转换的话,可能就会麻烦一点;如果想省钱省时省力,代码转换会更直接。

有了这两个思路,我们就来看看到底怎么实现。

2.1 手动转换

这里手动转换的方法不唯一,小鱼这里就列举一种常用的方法:先转换成PDF文件,再转换成Word,步骤如下:

  • 步骤一、excel的另存为".pdf", -  步骤二、将PDF文件,转存为.docx

由于小鱼的电脑没有pdf,所以就不演示另存为word了

但是pdf转换word有一个弊端,就是默认情况下,转换页数有限制,这也就是资本家割韭菜的原因。

2.2 自动转换

小屌丝:韭…菜… 小鱼:咋的,不让当韭菜,还不习惯了?小屌丝:我从小到大被割这么多次,还差这一次!

小屌丝的女友是富婆,所以不在乎;但是小鱼却不想当韭菜,所以,就用技术来武(解)装(放)自己。

2.2.1 docxtpl 介绍

我们来看一下官网的介绍:

This package uses 2 major packages :

  • python-docx for reading, writing and creating sub documents- jinja2 for managing tags inserted into the template docx python-docx-template has been created because python-docx is powerful for creating documents but not for modifying them.

The idea is to begin to create an example of the document you want to generate with microsoft word, it can be as complex as you want : pictures, index tables, footer, header, variables, anything you can do with word. Then, as you are still editing the document with microsoft word, you insert jinja2-like tags directly in the document. You save the document as a .docx file (xml format) : it will be your .docx template file.

Now you can use python-docx-template to generate as many word documents you want from this .docx template and context variables you will associate.

Note : python-docx-template as been tested with MS Word 97, it may not work with other version.

我给大概翻译一下:

docxtpl 主要有两个软件包:

  • python-docx 用于读取、写入和创建子文档- jinja2 用于管理插入到模板 docx 中的标签之所以创建 python-docx-template ,是因为 python-docx 在创建文档方面功能强大,但不能用于修改文档。这个想法起源于想生成word文档,它可以是你想要的任何复杂的,如:图片、索引表、页脚、页眉、变量、和你想要做的任何事情。由于还在使用Word编辑文档,所以可以直接在Word中插入jinja2的标签。将文档另存为.docx文件(xml 格式):它将成为您的 .docx 模板文件。

小屌丝:鱼哥,我咋看的一脸懵x?鱼哥:嗯,因为你不了解docxtpl。但是,跟着鱼哥的脚步,保你不在懵逼。

老规矩,先安装再使用:**

1、docxtpl安装

pip install docxtpl

安装完,就可以撸码了:2、代码展示

# -*- coding:utf-8 -*-
# @Time   : 2021-08-25
# @Author : carl_DJfrom docxtpl import DocxTemplate
'''
步骤:
1、读取需要保存的模板,
2、读取原excel表数据的值并输出
3、按照模本保存数据
'''
doc = DocxTemplate("my_word_template.docx")
context = {<!-- --> 'company_name' : "World company" }
doc.render(context)
doc.save("generated_doc.docx")

这段代码,很简单,也很直白。

步骤:1、读取需要保存的模板, 2、读取原excel表数据的值并输出 3、按照模本保存数据

因为保存word,我们需要jinja2的模板,如下:docx文档使用模本

{<!-- -->%p if display_paragraph %}
Here is my paragraph
{<!-- -->%p endif %}

温馨提示:

这里把 "p"去掉,也可以运行,但是为了代码正确性,还是按照文档来写。

关于jinja2更多的用法:下载并查阅官方文档,

2.2.2 代码实战

上面介绍了docxtpl的用法和jinja2的docx模板, 接下来,我们就要用3行代码,把excel转换成word。步骤如下:

首先、我们得准备3个文档

  • ① excel原数据文档

  • ② word文档模板

  • ③ 转换后的word文档

这是一个空文档,但是文件名称必须得安排上,否则运行代码会报错。

其次、编写代码

# -*- coding:utf-8 -*-
# @Time   : 2021-08-25
# @Author : carl_DJimport pandas as pd
from docxtpl import DocxTemplate#excel原文档数据,这里使用pandas,来读取excel原文件数据
df = pd.read_excel('个人喜好文档.xlsx')
df.sort_values(["章","节"],inplace = True)#把excel原文档数据通过jinja2模板匹配后,保存到word文档
#这个文档保存的是问题集
tpl = DocxTemplate("个人喜好问题模板.docx")
tpl.render({<!-- -->'ps':df[["章","节","标号","题目"]].values.tolist()})
tpl.save("个人喜好问题集.docx")#同样重复excel读jinja2模本与保存word的动作
#这个word保存的是答案集
tpl = DocxTemplate("个人喜好答案模板.docx")
tpl.render({<!-- -->'ps':df[["章","节","标号","答案","来源","收集人"]].values.tolist()})
tpl.save("个人喜好答案集.docx")

运行后,我们看看word文档里面内容

  • 个人喜好问题集.docx - 个人喜好答案集.docx 如果不了解Pandas,那么就去看小鱼的这篇博文: 《》小屌丝:9分钟,你有计算过这个时间吗?难道不能是8分钟、10分钟?小鱼:…那我是不是得改成:大概9分钟带你推开Pandas大门…

3、总结

写到这里,又要告一段落了, 今天就不扯太多了,毕竟…时间不早了。我也得留一点时间给妹子,不然…

最后一句话, 时间总是很匆忙,但是脚本却从未迈出! 收工

3行代码,Python实现excel转换成任意格式的word文档相关推荐

  1. html版api文档,将html版API文档转换成chm格式的API文档

    将html版API文档转换成chm格式的API文档并不是一件难事,所需要的只是2个工具及其你要制作的API的javadoc文档,一般去官网下载的话,都会有源代码和javadoc,软件一个是制作chm文 ...

  2. Python 将excel中的选择题 导入到word文档中

    Python 将excel中的选择题 导入到word文档中 0x00 昨天,我的老师给我们一个包含600道关于比赛的选择题和判断题的excel文档,要我们整理成指定格式的word文档以后交给他.我看着 ...

  3. python将excel转换成图片格式_利用python将图片转换成excel文档格式

    前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据 ...

  4. xml文件怎么转换成wps_xml文件转word文档 怎么将XML文档转成WORD文档

    1.找到需要转换为word文档的xml文档. 2.选择文档并点击鼠标右键,选择"打开方式"栏目中的"WPS表格"(或者excel表格),点击确定按钮. 3.点击 ...

  5. 怎么把pdf文件转换成可编辑的word文档

    迅捷PDF转换器免费试用版v6.0正式发布了,前面几天一直忙都没有时间安装,据说新版的PDF转换器开启了新的变革,有许多酷炫的新功能.挨到周末终于找到时间体验一下PDF转换器的性能. 准备一台电脑,我 ...

  6. 扫描PDF怎么转换成文字版的Word文档?

    扫描PDF一般是指内容全部是图片的PDF文档统称,这种PDF文档一般转换成Word后,Word里也都是图片,一样无法修改,但我们一般转成Word就是为了修改,那么怎样才能将这种扫描PDF转成可修改的文 ...

  7. Excel转换成PDF格式的方法

    我们在工作中会将做好的Excel数据交给领导,为了避免在文件传送过程中格式发生错乱:我们可以把Excel表格转换成PDF格式,这样我们在文件传送过程中就不会出现格式错乱的问题了.那怎么把Excel表格 ...

  8. springboot结合Freemarker模板生成docx格式的word文档(附代码)

    首先参考的是这篇文章: java利用Freemarker模板生成docx格式的word文档(全过程) - 旁光 - 博客园参考:https://my.oschina.net/u/3737136/blo ...

  9. Excel VBA实现从多篇Word文档内抓取文本框内内容(书接上一篇博客)

    Excel VBA实现从多篇Word文档内抓取文本框内内容(书接上一篇博客) 一.前情提要 我在上一篇博客<VBA摘取Word图形(Shapes)内文字>里验证了遍历doc文档内图形--尤 ...

  10. Python+Tesseract-OCR识别图片文字并保存到word文档

    目录 使用Python+Tesseract-OCR识别图片文字并保存到word文档 安装Tesseract-OCR 配置Tesseract-OCR 通过CMD验证Tesseract-OCR工作 安装p ...

最新文章

  1. R语言在ggplot中使用变量指定柱状图的名称实战
  2. 命令测试post_性能测试脚本编写之三
  3. listview mysql查询_Sqlite 数据库分页查询(ListView分页显示数据)
  4. 云原生大数据架构中实时计算维表和结果表的选型实践
  5. mysql 刘道成视频教程 第4-8课 --- 数据类型
  6. JAVA_返回一个数值的相反数的几种方式.
  7. jmeter-01 JMeter HTTP测试的各元件功能演示示例
  8. IBM计划收购Resilient Systems以扩大安全事件响应能力
  9. CentOS Postfix 安装构架全解
  10. html表单 当前年月日_HTML5表单
  11. TikTok二面:“聊聊二维码扫码登录的原理”
  12. 麒麟V10图形界面安装与运行人大金仓数据库
  13. 前端代码 review 流程规范
  14. OROCOS之KDL(1)—— windows环境搭建篇
  15. 怎样找回u盘里误删的文件
  16. 五月集训总结——来自阿光
  17. 图片合成视频+php,将视频和图片合成到一个页面
  18. C/C++ 视频播放器开发
  19. 2022-2028中国等级5Ti-6Al-4V合计市场现状研究分析与发展前景预测报告
  20. Java 脚本引擎 Rhino的学习

热门文章

  1. 华为HPLC模组全拆解之电力载波收发原理分析
  2. 计算机智能的技术的应用,计算机人工智能技术的应用与发展(1)
  3. C++ 重制植物大战僵尸(Cocos2dx开源项目)
  4. Stata:面板数据模型的完整步骤(NPL与企业绿色创新)
  5. 二级展开式斜齿圆柱齿轮减速器
  6. 解决局域网共享文件时提示“没有权限访问,请与网络管理员联系请求访问权限“
  7. windows温度监控效果最棒的软件 | Windows桌面优化、功能增强软件
  8. android 金山电池医生,金山电池医生3.0(android版).PDF
  9. 网络工程师(学习课件和视频)
  10. 计算机课用英语怎么说cute,原来英语可以如此cute