微信小程序云开发:使用excel-export导出excel

前言

关于小程序的excel导出,我也走过了不少坑。之前看了很多人要不使用其他云作为excel的导出工具,要不压根就只是nodejs,而不是微信小程序的云开发。因此,我写了此篇文章作为纪念和分享用excel-export在小程序导出excel的方法

excel-export

在node-excel-export上面有关于nodejs如何导出excel的简单方法,这里我主要讲几个方面:

  1. excel-export采用的方法是利用zip转xlsx的方法:
    你可以做个实验:在电脑上新建一个"test.xlsx"然后把后缀名改成“.zip”,然后解压,我相信你会看到有趣的东西
  2. excel-export利用的zip加码解码的工具是:node-zip。它派生自:jszip。但是:jszip保存zip的函数是:jszip.executeSysncjszip.executeNodeStream。分别可以将结果以不同形式保存:binary,node-stream,base64…。but,node-zip的保存zip的函数是:jszip.execute({base64:false,compression: "DEFLATE"}),这就意味着当我尝试改变源代码的时候:比如调用原来jszip的东西,程序会告诉你:**** is not a function
  3. 最重要的是:下面代码里面的excelResult的格式其实是binary

const nodeExcel = require(‘excel-export’);
var excelResult = nodeExcel.execute(tableMap);

来自node-zip-npm的详细说明:

核心代码

小程序端

getExcel: function(e){wx.cloud.callFunction({name:'get_excel',data:{},success: function(res){console.log(res.result.fileID);}} }

云开发的云端

安装excel-export

cd 该云函数的本地文件夹
npm install excel-export

get_excel.js

// 云函数入口文件
const cloud = require('wx-server-sdk')
const nodeExcel = require('excel-export')const path = require('path');
cloud.init()
// 云函数入口函数 exports.main = async (event, context) => {var tableHead = ["发票编号", "发票代码", "开票时间", "金额"];var tableMap = {styleXmlFile:path.join(__dirname,"styles.xml"),name: Date.now()+"-export",cols: [],rows: [],}//添加表头for(var i=0;i<tableHead.length;i++){tableMap.cols[tableMap.cols.length]={caption:tableHead[i],type:'string'}}
//伪数据
const Output = [{发票编号:0,发票代码:'001',开票时间:'2019-5-1',金额:100},{发票编号:1,发票代码:'002',开票时间:'2019-5-1',金额:200}
]
//添加每一行数据for(var i=0;i<Output.length;i++){tableMap.rows[tableMap.rows.length]=[Output[i].发票编号,Output[i].发票代码,Output[i].开票时间,Output[i].金额]}//保存excelResult到相应位置var excelResult = nodeExcel.execute(tableMap);var filePath = "outputExcels";var fileName = cloud.getWXContext().OPENID + "-" + Date.now()/1000 + '.xlsx';console.log(excelResult);//上传文件到云端return await cloud.uploadFile({cloudPath: path.join(filePath, fileName),fileContent: new Buffer(excelResult,'binary')});   }   catch(e){console.log(e);return null;  }}

注意把node-excel-export下载的文件里面的example文件夹下的style.xml复制到云函数的文件夹

微信小程序云开发:使用excel-export导出excel相关推荐

  1. 微信小程序云开发之用户输入数据后excel表格导出升级版

    大家好,我是csdn的小博主lqj_本人,最近在哔哩哔哩开始上传我的制作微信小程序的详细流程,大家可以关注一下哔哩哔哩:小淼前端 本次程序的详细视频教程已上传至哔哩哔哩: 腾讯云开发小程序之用户输入数 ...

  2. 基于微信小程序云开发(校园许愿墙app)2.0稳定版,以发布上线

    大家好~我是c站的一个小博主,我会定期更新博文,本篇是围绕微信小程序基于腾讯云开发展开的一个项目,如果看着还不错,或者对您有帮助的话,可以进我的专栏看看我的小程序的其他作品https://blog.c ...

  3. 微信小程序云开发之云数据库

    本篇讲述微信小程序云开发中的云数据库 云开发提供了一个JSON数据库(文档型数据库),提供2GB免费存储空间,这个JSON数据库不同于传统的关系型数据库. 传统的关系型数据库像我们的excel表格一样 ...

  4. 基于微信小程序云开发的投票小程序源码,图文投票微信小程序源码

    功能介绍 投票活动十分火,商家,企业,机构偶尔都会来一场投票活动评选,本小程序支持图文投票,简单方便.随时随地完成投票,可以方便设定投票模式(按天按全程,投票数限定). 本代码前后端完整代码包投票列表 ...

  5. 微信小程序云开发csv导入数据库中文乱码问题解决

    针对这个问题自己总结了一套步骤. 一.新建Excel并编辑数据: 二.Excel 编辑好后另存为csv文件(直接导入微信小程序云开发数据库会出现中文乱码): 三.csv文件直接改后缀名为.txt,然后 ...

  6. 微信小程序云开发CMS内容管理平台csv上传乱码或失败的解决方法

    一.新建Excel并编辑数据: 二.Excel 编辑好后另存为csv文件(直接导入微信小程序云开发数据库会出现中文乱码): 三.csv文件直接改后缀名为.txt,然后用记事本打开(如首行出现空字段需删 ...

  7. 微信小程序--云开发学习

    这两周因为没有布置任务,主要进行微信小程序云开发的学习 ················· 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云端能力. 云开发为开发者提供完整的原生 ...

  8. 微信小程序云开发-云函数篇

    一.小程序原生-云函数 1.在项目根目录下新建云函数存放的文件夹目录: "functions/",并在 project.config.json 中加入配置 2.右击 functio ...

  9. 垃圾分类微信小程序——云开发+CMS+微应用+百度智能云图片识别

    功能列表 1.0.0版本: 三个版本,一个APPID,登录页选择版本 登录,openid判断 社区居民用户注册,一房一主 工作/清洁人员账号绑定,一人一号,一号一人 用户首页,直接展示搜索功能,包括图 ...

最新文章

  1. Cheat Engine Tutorial 闯关手记
  2. UploadHandleServlet
  3. 信息系统服务器备机,医院信息系统业务连续性讨论:双机热备、RAC还是x86一体机?...
  4. CK8和CK18的含义
  5. c# ref和out参数
  6. python turtle画小狗_python-turtle-画雪花
  7. 软考信息安全工程师考试大纲第二版
  8. 2017年蓝桥杯软件B组省赛试题
  9. java eml_javamail读取并解析eml文件
  10. Android解决Can't create handler inside thread that has not called Looper.prepare()
  11. python 合并工作簿_Excel:快速合并多张表格或多个文件(工作簿)的数据(附Python代码)...
  12. IDEA打开多个项目
  13. Caused by: java.net.ConnectException: Call From hadoop1/192.168.1.201 to hadoop1:8020 failed on conn
  14. 计算机网络安全-----Internet安全
  15. 股票查询小程序_以龙虎榜数据为例
  16. Linux进程监视器——htop详解
  17. 2021年双非通信方向的详细保研经历(北邮、上交、东南)
  18. 对于那些系统隐藏分区删除方法
  19. Cleave js 使用
  20. 买了新笔记本电脑-荣耀magicbookpro2019啦!!

热门文章

  1. Facebook 秘钥散列
  2. John McAfee:杀毒软件已死
  3. 稳坐全球第一的小米手环,爆款背后的“护城河”是如何造就的?
  4. 首次超越人类!“读图会意”这件事,AI比你眼睛更毒辣 | 达摩院
  5. `spyder总是闪退?spyder打不开?spyder又又又又又出错啦?
  6. 网站后台没有提示声怎么办_收藏 | 没有 PS 怎么办?10个在线作图网站,轻松搞定图片设计...
  7. JAVA 创建文件和文件夹,删除文件和文件夹,复制文件和文件夹,移动文件和文件夹的实用工具类
  8. C++string用法
  9. Redis —— SpringBoot工程下的GeoHash工具类
  10. 计算机图形基础学答案,计算机图形学基础答案全.pdf