博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Excel快速批量导入生产Cavns并生成图片下载到本地
阅读量:6688 次
发布时间:2019-06-25

本文共 2984 字,大约阅读时间需要 9 分钟。

有时候会有这样的需求吧

有一个表格里面有一批数据需要批量生成封面

我们在浏览器里可以批量生成
比如

clipboard.png

我们有这样一个表格需要生成图书封面

clipboard.png

有三千多本书的话该怎么生成

我们就可以这样做

$.ajax({        url: 'ssss.csv',        dataType: 'text'    }).done(successFunction);
function successFunction(data) {        var allRows = data.split(/\r?\n|\r/);        var table = '
'; for (var singleRow = 0; singleRow < 10; singleRow++) { if (singleRow === 0) { table += '
'; table += '
'; } else { table += '
'; } var rowCells = allRows[singleRow].split(','); var m = { a: rowCells[0], b: rowCells[1], c: rowCells[2], d: rowCells[3] } book.push(m) for (var rowCell = 0; rowCell < rowCells.length; rowCell++) { if (singleRow === 0) { table += '
'; } else { table += '
'; } } if (singleRow === 0) { table += '
'; table += '
'; table += '
'; } else { table += ''; } } table += '
'; table += '
'; table += rowCells[rowCell]; table += ' '; table += rowCells[rowCell]; table += '
'; $('body').append(table); }

首先要解析excel表格

把csv格式的excel转化成html里面的table顺便把需要的信息push到一个数组

clipboard.png

html里得到这样的表格

然后构建canvas

function drawBook(arr) {        console.log(arr)        var c = document.getElementById("myCanvas");        var img = 'c.png'        var ctx = c.getContext("2d");        // cxt.drawImage('c.png',0,0)                var img = new Image();        if (Math.random() < 0.5) {          img.src = "c.png";        } else {          img.src = "b.png";        }        img.onload = function() {            ctx.drawImage(img, 0, 0, 467, 666);            ctx.fillStyle = "#985d3f";            ctx.textAlign = "center";            ctx.font = "36px Arial";            ctx.fillText(arr.b.substring(0,8), 233, 100);            ctx.fillText(arr.b.substring(8,16), 233, 150);            ctx.fillText(arr.b.substring(16,24), 233, 200);            ctx.font = "20px Arial";            ctx.fillText(arr.c + "/著", 233, 240);            ctx.font = "16px Arial";            ctx.fillStyle = "#fff";            ctx.fillText(arr.d, 233, 635);            var i = c.toDataURL()            download(i, arr.a, "png")            // Canvas2Image.saveAsPNG(c)        }    }
function d() {        b = book.length - 1        for (var i = 0; i < book.length; i++) {            setTimeout(() => {                if (b !== 0) {                    console.log(b)                    drawBook(book[b])                    b--                }            }, i * 2000)        }    }

画好后用canvas2image.js下载图片

然后在chrome里设置下下载路径。然后封面就一个一个下啦

是不是很方便

clipboard.png

clipboard.png

clipboard.png

具体源代码在github上

有用的话记得星星

转载地址:http://xbeao.baihongyu.com/

你可能感兴趣的文章
第4章 Notification与状态栏信息
查看>>
Linq To Object 示例
查看>>
1. asp.net实现单点登陆
查看>>
【英语天天读】优秀的标准
查看>>
童话世界整理------“说说”
查看>>
.Net 中的反射(动态创建类型实例) - Part.4
查看>>
开发者经常用到的75 个功能强大的 jQuery插件和教程汇总(上篇)
查看>>
.net 匹配所有标点符号 java 匹配所有标点符号
查看>>
GitHub项目Storm-HBase介绍
查看>>
自己写平方根squareroot函数
查看>>
Linux Socket学习--为套接口绑定地址
查看>>
SystemTap知识(一)
查看>>
OracleLinux上安装数据库(DBCA)
查看>>
IOS开发 应用程序图标数字角标
查看>>
利用 FormData 对象发送 Key/Value 对的异步请求
查看>>
vlc做转发的命令
查看>>
MySQL:日期函数、时间函数总结
查看>>
【技术贴】三星Note8 N5100实用教程,关闭相机快门声,增加浏览器退出按钮。...
查看>>
C# 调试程序时如何输入命令行参数
查看>>
如何成为强大的程序员?
查看>>