你有看见我弄丢了的那只喵吗

简单利用Python批量生成Excel 模板

BIGGER SLY 525℃ 0评论

0X01 需求描述

在项目上经常会用到dataload 但是一般来说是给出数据 复制粘贴一键导入 看着运行即可,但是有些情况 是需要很繁杂的手工编辑。

具体需求描述如下:

a. 我拥有一个模板但是这个模板很复杂,我需要通过这个模板生成很多很多模板内容大概是100-200个(类似于邮件合并发送)

b. office 标准邮件合并 无法满足我们的需求,因为 特定字段的确可以按照列表生成,但是他余下的是一个动态列,要根据他拥有多少列来自动生成多少行的数据,而且尾行还不一样。

c.  最好要生成在一张excel 上  这样方便我导入(当然 很多看这篇文章的人 可能希望生成不同excel 或者word 这个很简单 不过改改代码生成即可)

图一为 demo模板:

图二为 原始数据:

图三: 最后希望生成的结果:

也就是 每一个【供应商】生成一个dataload 模板, 如果有多行 自动动态列生成 并带出相关价格啊 其他参数数据。

0X02 解决思路

  1. office 标准的 邮件合并无法满足动态列生成需求,而在网上搜索发现 有很多生成报表的功能都是采用VB编码编写,当然 当时比较急 我选择Python。(主要是我就熟悉这玩儿,VB 还要学)
  2. 放弃vb 编写意味着 无法和office 集成,原本可以像vlookup一样赛选区域 然后生成 ,现在也不能考虑。而使用Python就需要考虑 数据如果获取的问题,诚然,openpyxl 可以解决数据读取的问题,最好有个数据库,刚好本地搭建有mysql 而且和excel 集成,因此原始生成数据我扔到了mysql(导入mysql 会出现一个错误 说 max packet allow 设置较低 可以修改一下设置然后重启即可)
  3. 万事俱备 可以开动。不过有一个问题是,Python编写只能解决当前这个问题,如果需要生成其他的模板 不能自动变更,我后续还是考虑一下 弄一个小插件或者代码吧。

0X03 代码编写

Talk is cheap show u code.

 

 

转载请注明:灯塔水母 » 简单利用Python批量生成Excel 模板

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址