微信小程序云开发:使用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. C++ link2005 error 错误 解决方法汇总(一般重复定义,如果都是不就是 函数定义和实现没有分离)...
  2. jQuery-1.9.1源码分析系列(二)jQuery选择器续2——筛选
  3. qt ui指针和本类对象_您需要了解的有关UI设计的形状和对象的所有信息
  4. Android之文件读写
  5. 移动端HTML5框架
  6. 《分布式系统模式》中文版
  7. JAVA面试要点006---.net中的委托与java中的代理模式和委托
  8. 服务器安装找不到lsi驱动,IBM 服务器 SAS Raid LSI Windows2008 硬盘 驱动
  9. 盘点4种方法用Python批量提取[]括号内的第一个元素
  10. thinkphp6获取字符串中的中文首字母
  11. 计算机中央控制单元是由什么组成,电子控制单元由什么组成
  12. SuperPoint论文笔记
  13. BeanFactory not initialized or already closed - call ‘refresh‘ before accessing beans via the Applic
  14. Linux命令-程序启动
  15. Android - 吸顶效果 布局篇
  16. ubuntu 18.04初安装
  17. 地铁和轻轨交通的特点
  18. 【三层交换机的配置】
  19. 2020-09-12 6级备考(传统阅读,长篇阅读,听力,选词填空)
  20. app自动化测试最佳实践

热门文章

  1. 电容的电抗|X|,总阻抗|Z|和等效电阻R
  2. 本科计算机专业写论文写什么,本科计算机专业论文大纲格式 本科计算机专业论文框架如何写...
  3. 计算机教室灭火器配置标准,计算机教室与多媒体教室安装场地基本要求.doc
  4. phpstudy+gv32-CSM
  5. 岩土数值分析对学计算机有用吗,岩土数值分析1、2、3章2013.ppt
  6. 2020安徽省大学生程序设计大赛题解——K 农夫打狼
  7. PMP每日一练 | 考试不迷路-10.25(包含敏捷+多选)
  8. 图码详解算法|理解八大思想,胜刷百道力扣!
  9. R语言——牛市追涨杀跌模型
  10. C++之一些事一些情--写在前面