微信小程序> 微信小程序通过知晓云云函数导出excle无须后台开发-如何将excel转成微信小程序-微信小程序生成器

微信小程序通过知晓云云函数导出excle无须后台开发-如何将excel转成微信小程序-微信小程序生成器

浏览量:2483 时间: 来源:流转往复
前言1.

前阶段用后端云(知晓云bmob云之类,不需要后台开发接口只需要用后端云api操作云上的数据库)接到了个需求,就是导出excle文件。导出excle在有后端开发的时候是很简单的一个接口,但是在使用后端云的时候就麻烦了,没有现成的api方法。因此研究了下云函数,使用nodejs开发。大概思路是:

前端发送需要导出excle的数组云函数接口参数,并生成excle文件,上传到后端云,返回excle文件的url在小程序通过下载文件api下载需要导出的excle文件git地址知晓云介绍2.

知晓云是个好用、顺手的小程序开发工具。它免去了小程序开发中服务器搭建、域名备案、数据接口实现等繁琐流程。让您专注于业务逻辑的实现,使用知晓云开发小程序,门槛更低,效率更高。

3.

知晓云官网注册地址

开发步骤前期准备4.

nodejs

5.

小程序

6.

知晓云账号,绑定小程序balabala的注册后按照提示操作即可

7.

安装命令行工具

npminstall-gmincloud8.

进入工作目录(自己创建一个目录即可)

cd/Users/ifanr/demo9.

登录

mincloudlogind2****************836a************************************2210.

请到知晓云控制台查看client_id和client_secret;如果登录失败,请检查client_id和client_secret是否已经改变。

11.

创建云函数

mincloudnewexportExclecdexportExcle12.

初始化package,生成package.json文件

npminit13.

在第七步创建的目录exportExcle,新建src文件夹,用来存放源码(第13步的index.js)。接下来会使用webpack将src里的代码,打包并保存到exportExcle目录下的index.js

14.

在exportExcle目录新建webpack.config.js文件(先放空,内容在12步)。

15.

安装webpack

npminstall-Dwebpackwebpack-cli16.

修改webpack.config.js和package.jsonscript配置

module.exports{output:{path:__dirname,filename:'index.js',library:'exports.main',libraryTarget:'assign',},target:'node',}"scripts":{"build":"webpack--modeproduction","deploy":"minclouddeployxxxxx../"},17.

创建文件src/index.js

varExcelrequire('exceljs');module.exportsfunction(event,callback){//cellstylevarfills{solid:{type:"pattern",pattern:"solid",fgColor:{argb:"FFFFAAAA"}}};//createaworkbookvarworkbooknewExcel.Workbook();//addheadervarws1workbook.addWorksheet("测试一");ws1.addRow(["地址","地面"]);ws1.addRow(["总人口","不可计数"]);ws1.addRow(["类型","动物","非动物"]);ws1.addRow(["统计日期","1111-11-1111:11:11"]);ws1.addRow();//A6:E6ws1.addRow(["你","在","说些","神马","呢?"]);ws1.getCell("A6").fillfills.solid;ws1.getCell("B6").fillfills.solid;ws1.getCell("C6").fillfills.solid;ws1.getCell("D6").fillfills.solid;ws1.getCell("E6").fillfills.solid;//7-13(A7:A13)-7ws1.addRow(["什么跟神马",10,1,"凡人修仙传",7]);ws1.addRow(["","","","一号遗迹",2]);ws1.addRow(["","","","六号遗迹",0]);ws1.addRow(["","","","古国一号",0]);ws1.addRow(["","","","锻体期",0]);ws1.addRow(["","","","合体期",0]);ws1.addRow(["","","","没资质",1]);ws1.mergeCells("A7:A13")ws1.mergeCells("B7:B13")ws1.mergeCells("C7:C13")//a6-e13abcde//ws1.getCell('A7').alignment{vertical:'middle',horizontal:'center'};rowCenter(ws1,6,13); colWidth(ws1,[1,2,3,4,5],20);varws2workbook.addWorksheet("测试二");varws3workbook.addWorksheet("测试三");//设置 start-end 行单元格水平垂直居中/添加边框functionrowCenter(arg_ws,arg_start,arg_end){for(iarg_start;iarg_end;i++){arg_ws.findRow(i).alignment{vertical:'middle',horizontal:'center'};//循环row中的 cell,给每个cell添加边框arg_ws.findRow(i).eachCell(function(cell,index){cell.border{top:{style:'thin'},left:{style:'thin'},bottom:{style:'thin'},right:{style:'thin'}};})}}//设置 start-end列的宽度functioncolWidth(arg_ws,arg_cols,arg_width){for(iinarg_cols){arg_ws.getColumn(arg_cols[i]).widtharg_width;}}workbook.xlsx.writeFile('/var/log/test2.xlsx').then(function(){//生成excle文件后,通过知晓云api上传到知晓云letMyFilenewBaaS.File()MyFile.upload('/var/log/test2.xlsx').then(function(a,b,c){console.log(a,b,c);console.log('生成xlsx');callback(null,"生成xlsx")})});}18.

安装exceljs

npminstallexceljs19.

打包在项目根目录下执行npmrunbuild,即可启动webpack进行代码打包。

npmrunbuild20.

部署在项目根目录下运行:

npmrundeploy21.

回到上级目录,并部署到云函数

cd..minclouddeployexportExcle22.

测试云函数

https://cloud-minapp-24278.cloud.ifanrusercontent.com/1gt1FlTKm39G6dug.xlsx23.

使用小程序下载excle文件

wx.downloadFile({url:'https://cloud-minapp-24278.cloud.ifanrusercontent.com/1gt1FlTKm39G6dug.xlsx',//仅为示例,并非真实的资源success(res){//只要服务器有响应数据,就会把响应内容写入文件并进入success回调,业务需要自行判断是否下载到了想要的内容if(res.statusCode200){//res.tempFilePath}}})

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎