前言
随着移动端的不断发展,人们大部分的办公及生活应用都开始趋向于移动端。然而在2017年“微信之父”张小龙带领团队,开发了一款叫做微信小程序的东西,它的出现打破了人们认识移动端的隔膜,由以前的需要先下载app然后在开始工作的老式模式,逐渐的趋向于小程序app(无需下载)的形式。

一、微信小程序是什么?
微信小程序是一种不需要下载安装即可使用的应用,它实现了应用的随开随用,用户只需要用微信扫一扫或者通过微信搜一下即可打开应用,使用完即可关闭,还可以把小程序添加到桌面,真正的做到了便捷方便,用完就走。

二、什么是微信小程序的云开发
云开发为开发者提供完整的云端支持,弱化了后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

从开发流程来看,以往开发一个微信小程序需要经过产品功能构思、模块划分、原型设计、UI 设计、前端开发、后端开发、接口联调、测试上线等开发阶段。有了「小程序·云开发」后,前端工程师将可以独立实现前端开发、后端开发、接口联调工作,且无需太多后端知识。

在基于微信小程序云开(统计学生信息并导出excel)我们已经完成了,对用户输入信息的上传以及,点击按钮实现将excel表格自动复制到粘贴板,以及excel表个下载并浏览的功能!

本篇文章是在:统计学生信息并导出excel1.0版本,上进行更新,升级到2.0

那么具体升级了写什么内容呢?

我们知道,如果一个excel表格不断添加,内存会不断变大,下载浏览时(考虑到移动端和pc端的浏览视觉效果不同),我对此产生了一个大胆的想法:

我将其添加了一个“管理者”的功能:

在管理的tabber中我创建了一个登录功能,我考虑到,管理者也就是最后拿到所有excel表格数据的人,当然这可能时一个人,也可能是几个人都是管理者,所以我在admin数据库中创建了登录账号和登录密码,从而实现只要知道账号和密码的人就可以管理最终的excel表格。

当然我这里演示就拿123来演示了~

 创建完admin数据库(存放账号和密码的数据)之后,我们开始实现登录功能:

guanli.wxml:

<view class="felx"><text style="font-size: 50rpx;font-weight: bold;color: coral;">管理者入口</text>
</view><van-popup show="{{ show_login }}" round position="bottom"custom-style="height: 60%" closeable bind:close="close_login_case"><view><view style="height:100rpx"></view><view style="width:80%;margin-top: 80rpx;"><van-icon name="friends-o" /><input type="text" placeholder="账号" style="margin-left:20rpx" data-name="username" bindinput="input_msg"/></view><van-divider style="width:80%" custom-style="margin-top:10rpx;margin-bottom:10rpx"></van-divider><view  style="width:80%;margin-top: 40rpx;"><van-icon name="goods-collect-o" /><input type="password" placeholder="密码" style="margin-left:20rpx" data-name="password" bindinput="input_msg"/></view><van-divider style="width:80%" custom-style="margin-top:10rpx;margin-bottom:10rpx"></van-divider><button style="background-color:#4fc08d;color:#FFFF;width:70%;margin-top:100rpx"disabled="{{is_login?'true':''}}" bindtap="login_admin">登录</button></view>
</van-popup><text style="color: crimson;margin-top: 200rpx;">说明:管理者可以登录此页面跳转到管理页面进行对学生已上传的数据信息进行查看及管理</text>

guanli.js:

// pages/guanli/guanli.js
const app = getApp()
const db = wx.cloud.database()
Page({/*** 页面的初始数据*/data: {user:{},username:"",password:"",},login_admin(){let that = thiswx.showLoading({title: '登陆中',})if(that.data.username == '' || that.data.password == ''){wx.showToast({title: '请输入账号密码',icon:"none"})}else{that.setData({is_login:true})db.collection('admin').where({username:that.data.username,password:that.data.password,}).get().then(res=>{console.log('登录',res)that.setData({      is_login:false})wx.hideLoading()if(res.data.length == 0){wx.showToast({title: '账号或密码错误',})}else{app.globalData.admin = res.data[0]wx.navigateTo({url: '../admin_index/admin_index',})}})}},input_msg(e){let that =thislet name = e.currentTarget.dataset.namethat.setData({[name]:e.detail.value})},/*** 生命周期函数--监听页面加载*/onLoad(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函数--监听页面隐藏*/onHide() {},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {},/*** 页面上拉触底事件的处理函数*/onReachBottom() {},/*** 用户点击右上角分享*/onShareAppMessage() {}
})

admin_index页面是"管理者"在登录成功时跳转到的另一个管理的专属页面,所以还需要创建一个页面名为:admin_index:

admin_index页面的显示:

admin_index.wxml:

<button type="primary" bindtap="shanchu" style="margin-top:100rpx;">删除用户数据</button>
<text style="color: red;margin-top: 100rpx;">"删除用户数据",,,按钮时管理者使用按钮,若一次表格的任务完成时,还想继续使用本程序,但下个重新开启下一次输入信息并打印excel表的任务时,可以按下此按钮!excel表重新进入初始化!</text>
<button type="primary" bindtap="chakan" style="margin-top:100rpx;">查看excel表中所有用户的数据</button>

admin_index.js:

// pages/admin_index/admin_index.js
const db = wx.cloud.database()
Page({/*** 页面的初始数据*/data: {},shanchu() {wx.cloud.callFunction({name: 'shanchu',// 这里要和云函数的名字一致}).then( res => {console.log("删除成功!",res)wx.showToast({title: '数据删除成功!!!',})}).catch( err => {console.log(err)})},chakan(){wx.cloud.callFunction({name:"stuexcel", // 调用的云函数名data:{clssdata:'1111'    //根据班级字段,导出班级成员信息 ===对应云函数clssdata},complete:res=>{console.log(res.result)//  return//获取文件下载地址(24小时内有效)wx.cloud.getTempFileURL({      fileList:[res.result.fileID],success:res=>{console.log('文件下载链接:',res.fileList[0].tempFileURL)this.setData({  //设置data中定义相应的变量tempFileURL:res.fileList[0].tempFileURL,})//复制刚获取到链接,成功后会自动弹窗提示已复制wx.setClipboardData({  data:this.data.tempFileURL,success (res) {wx.getClipboardData({success (res) {console.log('复制成功:',res.data) // data}})}})}})}})},/*** 生命周期函数--监听页面加载*/onLoad(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函数--监听页面隐藏*/onHide() {},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {},/*** 页面上拉触底事件的处理函数*/onReachBottom() {},/*** 用户点击右上角分享*/onShareAppMessage() {}
})

 其中删除按钮是在一次excel表格完成一次任务时,我们将其重置并为下一次使用准备!

所以我们要借助云函数的帮忙!

我们要部署一个云函数来实现数据库的批量增删改查的功能:

好!部署并上传完成之后我们开始写云函数中的js代码:

我们要用这个接口来实现云函数对云数据库的控制:

(前提是我们得先转换变量:)

const db = cloud.database()

这个接口来实现云函数对云数据库的控制:

db.collection('users').where({}).remove({})

下面代码的意思:我们用数据库中每一条数据记录中的xingming的字段来判断是否存在这一条数据记录:

因为每一条数据记录都存在一个xingming的字段,所有我们可以利用这个,再用where({})api找到所有里面包含xingming的数据记录(全部记录)!

然后再

.remove({})

调用返回的结果!

全部代码:

// 使用了 async await 语法
const cloud = require('wx-server-sdk')
cloud.init({env: '' // 这个地方放自己的云函数环境
})
const db = cloud.database()
const _ = db.commandexports.main = async (event, context) => {let {xingming} = event;console.log(xingming); // console的结果在 云开发--云函数--日志中查看try {return await  db.collection('users').where({xingming: _.exists(true)//只要xingming存在的记录都删掉}).remove({}) // 返回调用结果} catch(e) {console.error(e)}
}

云函数写完之后我们再来写我们想要的页面来相应这个新写的云函数。

admin_index.wxml中我们写一个点击绑定事件:

<button type="primary" bindtap="shanchu" style="margin-top:100rpx;">删除用户数据</button>

admin_index.js中我们对我们写的云函数进行此页面中button按钮的调用事件:

    shanchu() {wx.cloud.callFunction({name: 'shanchu',// 这里要和云函数的名字一致}).then( res => {console.log("删除成功!",res)wx.showToast({title: '数据删除成功!!!',})}).catch( err => {console.log(err)})},

至此我们就可以重新初始化我们的excel表的数据了,达到再一次使用的目的!

至于这个按钮,我们根据我们上一篇文章已经完成的stuexcel这个云函数,来做一个页面中button绑定并调用云函数是事件!

admin_index.wxml:

<button type="primary" bindtap="chakan" style="margin-top:100rpx;">查看excel表中所有用户的数据</button>

admin_index.js:

 chakan(){wx.cloud.callFunction({name:"stuexcel", // 调用的云函数名data:{clssdata:'1111'    //根据班级字段,导出班级成员信息 ===对应云函数clssdata},complete:res=>{console.log(res.result)//  return//获取文件下载地址(24小时内有效)wx.cloud.getTempFileURL({      fileList:[res.result.fileID],success:res=>{console.log('文件下载链接:',res.fileList[0].tempFileURL)this.setData({  //设置data中定义相应的变量tempFileURL:res.fileList[0].tempFileURL,})//复制刚获取到链接,成功后会自动弹窗提示已复制wx.setClipboardData({  data:this.data.tempFileURL,success (res) {wx.getClipboardData({success (res) {console.log('复制成功:',res.data) // data}})}})}})}})},

展示最终结果:

第一次写完后打开:

管理者登录后管理后打开:

2.0的管理者模块功能实现了,excel的重复利用,可以让一个程序分别给多个班级分为先后不同的顺序来使用,提高了效率!!!

基于微信小程序云开(统计学生信息并导出excel)2.0版相关推荐

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

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

  2. 基于微信小程序云开(统计学生信息并导出excel)

    前言 随着移动端的不断发展,人们大部分的办公及生活应用都开始趋向于移动端.然而在2017年"微信之父"张小龙带领团队,开发了一款叫做微信小程序的东西,它的出现打破了人们认识移动端的 ...

  3. 基于微信小程序云开(统计学生信息并导出excel)3.0版

    前言 随着移动端的不断发展,人们大部分的办公及生活应用都开始趋向于移动端.然而在2017年"微信之父"张小龙带领团队,开发了一款叫做微信小程序的东西,它的出现打破了人们认识移动端的 ...

  4. 基于微信小程序云开(统计学生信息并导出excel)4.0版(稳定版)

    前言 随着移动端的不断发展,人们大部分的办公及生活应用都开始趋向于移动端.然而在2017年"微信之父"张小龙带领团队,开发了一款叫做微信小程序的东西,它的出现打破了人们认识移动端的 ...

  5. 基于微信小程序云开发(校园许愿墙app)妄想替代学校的表白墙

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

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

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

  7. 校园二手书商城源代码基于微信小程序云开发,可在线支付提现,含详细配置教程

    校园二手书商城源代码基于微信小程序云开发,可在线支付提现,含详细配置教程 完整代码下载地址:校园二手书商城源代码基于微信小程序云开发 欢迎使用,下面是配置教程 长话短说,下面直接说配置流程 一.小程序 ...

  8. 基于微信小程序云开发的职业学校招生报名小程序源码,职业学校招生报名微信小程序源码 ,职业学校招生报名小程序源码

    功能介绍 这是一个以报名为核心的职业学校招生小程序,目的是方便想要系统学习技能,入门某项技能或者领域的初高中毕业生,了解该学校的基本情况及各个专业,并提供报名路径,致力于技能型人才培养. 本程序前后端 ...

  9. 基于微信小程序云开发的医院体检预约小程序源码,医院体检预约小程序源码,实现体检预约管理、体检预约凭证、预约数据查看导出 版权申诉

    功能介绍 对于医院体检科室和体检机构而言,每天的体检人数分布也不太均衡,若很多人集中在 某些天体检,会出现「医生强度大.体检人排队久」的问题.采用体检预约小程序进行体检预约数管理,体检人可预约到更广的 ...

最新文章

  1. Windows 8 图标前面的勾选
  2. python 数组数据类型
  3. 《系统集成项目管理工程师》必背100个知识点-41控制进度
  4. 【python】self cls
  5. 空间正交基的定义_正交向量与子空间
  6. python下载文件传到服务器_python实现FTP文件传输(服务器端和客户端)
  7. javaweb实训第四天上午——员工管理系统-JavaBeanELJSTLMVC思想
  8. 为什么我们不再购买技术类书籍
  9. 编写 Window 服务程序
  10. Atitit. 单点登录sso 的解决方案 总结
  11. java socket编程—单客户端与服务器通信
  12. Tecplot自定义变量
  13. android gps定位误差,Android的GPS定位速度不可靠
  14. BottomNavigationView--基本使用总结
  15. 9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的求职之路
  16. QT中的sender函数,result函数
  17. 放大电路不同频段耦合电容、旁路电容、极间电容和分布电容的分析方法
  18. Tiny6410之重定位代码到SRAM+4096
  19. Mybatis概念以及源码分析
  20. GitHub + jsDelivr + PicGo + Imagine 打造稳定快速、高效免费图床

热门文章

  1. Aseprite动画技巧
  2. Unity做动画不播放解决方案之一
  3. “HEAP:Invalid Address specified to RtlValidateHeap( 000D0000, 019FEF18 )错误
  4. python爬取微信公众号文章(包含文章内容和图片)
  5. ubuntu 安装视频下载器Annie
  6. 从冯诺伊曼结构看AI 1
  7. 论坛php 图片上传,Discuz! X3 论坛文件图片上传尺寸:小于2M的修改方法
  8. PHP站内搜索功能(laravel自带Scout驱动+elasticsearch)
  9. 解析微信小程序真正的作用
  10. 在线标注协作服务Hypothes.is的简明教程