zoukankan      html  css  js  c++  java
  • excel模板数据填充 :tablefill

    背景(问题)

    在Web后台系统中或多或少都存在导入数据的功能,其中操作流程基本是

    1.下载模板

    2.填充模板数据

    3.上传模板

    但通常比较耗费时间的是填充模板数据这一步骤, 已自己为例之前的数据要么是随便想的或者通过Python库Faker 来生成虚拟数据之后,手动将数据复制到excel模板中。

    tablefill

    tablefill 解决的问题,手动将数据复制到excel模板中这一步骤给省略掉。它通过一个列配置文件来指定生成的数据,并填充到模板中。

    整体实现是比较简单的:1.读取配置文件,2.用Faker库转换数据,3.追加写入excel文件

    https://pypi.org/project/tablefill/

    https://gitee.com/zy7y/tablefill

    https://github.com/zy7y/tablefill

    使用

    安装

    pip install tablefill
    

    CLI

    # 通过一下查看有那些命令
    fill --help
    

    配置列数据类型

    [
      {
        "type": "faker", // 可选值 faker(默认值,可不写type这个字段)、input 会直接读取var 的值 由自己设置
        "func": "name", // 对应的是 Faker 生成虚拟数据的那些方法名 https://faker.readthedocs.io/en/master/providers.html
        "var": null, // 没有参数时可以不写该字段, 当type 为faker时 这部分会被作为func 对应函数名的入参
        "varFirst": "前", // 如果不需要可以不写该字段, 会在 var 这个 参数 前面 加上 内容
        "varEnd": "后" // 如果不需要可以不写该字段, 会在 var 这个 参数 后面 加上 内容
      }
    ]
    

    示例

    [
      {
        "type": "input",
        "var": "这列我输入"
      },
      {
        "func": "phone_number"
      },
      {
        "func": "random_int",
        "var": {
          "min": 10,
          "max": 21
        },
        "varFirst": "编号",
        "varEnd": "班"
      },
      {
        "func": "random_elements",
        "var": {
          "elements": ["小学", "高中", "初中"],
          "length": 1
        }
      }
    ]
    

    导入模板文件

    需要是xlsx/xls文件
    4h3G3F.md.png

    执行命令

    # --num 可选参数 默认 10条 ,这里就是30条
    fill generate 配置文件 模板文件 生成文件名 --num 30 
    
    fill generate "E:coding	ablefillexamplesdemo.json" "E:coding	ablefillexamplesdemo.xlsx" demo.xls
    

    填充数据后的文件
    4h8FbR.md.png

    已知问题

    1. 生成的文件后缀是.xlsx时,用office 无法打开: 解决办法: 后缀改为.xls
    2. 生成的文件会丢失之前模板文件中的样式
    作者:zy7y
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    原生JS中Ajax的使用方法
    back-to-top回到顶部
    atom插件
    git 命令操作
    常用font-family
    上传按钮美化
    mongodb
    GraphicsMagick命令
    enctype=“multipart/form-data”详解
    操作符
  • 原文地址:https://www.cnblogs.com/zy7y/p/15359896.html
Copyright © 2011-2022 走看看