IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序云开发如何实现读取和下载excel文件导入数据到云数据库中?简单好理解 -> 正文阅读

[移动开发]微信小程序云开发如何实现读取和下载excel文件导入数据到云数据库中?简单好理解

一般我们在开发中会遇到通过excel文件一键导入数据的模板操作,我们在微信小程序中可以使用node-xlsx插件来解析excel文件的内容变成以json格式的数据返回。

  • 在处理该操作的云函数中下载安装node-xlsx,命令:npm install node-xlsx
  • 在云函数引入该文件,并对传过来的数据做处理

操作

1.小程序端中选择文件并上传到云服务器

//选择文件
   addAdminSum(){
    var that=this
    wx.chooseMessageFile({
      count: 10,
      type: 'file',
      success (res) {
         wx.showLoading({
           title: '正在批量发布中...',
         })
        // tempFilePath可以作为img标签的src属性显示图片
        console.log(res);
        const path = res.tempFiles[0].path
        // uploadfile是封装的上传云存储的方法(往下补充)
          uploadfile(path).then(res=>{
            
               that.jiexi(res)//将文件id传到解析方法
           })
      }
    })
   },

   jiexi(fileID){
  
     wx.cloud.callFunction({
       name:"excel",
       data:{
         fileID:fileID,
       
       },
       success:res=>{
         wx.hideLoading()
         console.log('解析并上传成功',res);
         wx.showToast({
           title: '导入发表成功',
           icon:'success',
         })
         
       },
        fail:err=>{
          console.log('解析失败',err);
        }
     })
   },

上面代码通过选择本地文件将文件临时地址上传到云存储,再把云存储该文件的fileID,给 jiexi()方法,jiexi()只是调用云函数,补充一下我封装的uploadfile方法。(下面方法在你的公共js文件直接复制粘贴,在上面的js文件引用就可)

const uploadfile= (tempFile) => {
    console.log("要上传文件的临时路径", tempFile)
    return new Promise((resolve, reject) => {
    let timestamp = (new Date()).valueOf()
    wx.cloud.uploadFile({
            cloudPath: +timestamp + '.xls', //云存储的路径,开发者自定义
            filePath: tempFile, // 文件路径
        }).then(res => {
            console.log("上传成功xls", res)
            resolve(res.fileID)
        })
       
    })
}
exports.uploadfile = uploadfile;

2.咱们现在去处理name名是excel的云函数

先新建名为excel的云函数,在该云函数右键选择 → 在外部终端打开 → 直接复制粘贴安装命令 成功即可!

做了上面的操作,我们开始实现函数代码逻辑
先上代码!

//excel云函数文件
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
    env: 'kjd213ljlxs-dasda'
})
//引入node-xlsx文件
var xlsx = require('node-xlsx');
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {

   let fileID = event.fileID
    //1,通过fileID下载云存储里的excel文件
    const res = await cloud.downloadFile({
        fileID: fileID,
    })
    console.log('下载的文件',res);
    const file_xlsx = res.fileContent
    //2,解析excel文件里的数据
    var files = xlsx.parse(file_xlsx); //获取到已经解析的对象数组(下面我会出返回的代码结构,以及我的excel文件内容)
   console.log('获得内容表格数组',files[0].data); //files[0].data里面就是我们的内容数组(以上直接复制即可)
   
  
  //下面就是我通过将这个数组files[0].data使用回调函数进行循环一行一行内容添加到云数据库中
  //可以先用随便定义一个变量  arr=files[0].data,我懒得改了就做操作了。 
    function addfile(i){
        db.collection("books").add({
            data:{
             title:files[0].data[i][0],
             jiesi:files[0].data[i][1],
             laiyuan:files[0].data[i][2],
             yujing:files[0].data[i][3],
             zaoju:files[0].data[i][4],
         
            }
            }).then(res=>{
                i++
                if(i==files[0].data.length){
                //循环结束删除上传的文件不占用云存储
                    cloud.deleteFile({
                        fileList:[fileID],
                        success(res){
                            return  console.log(res,'删除文件')
                        },
                      })    
                }else{
                    addfile(i)
                }
            })
   }
   addfile(1)
   

}

在上面 files 变量中返回的数据格式 以及 excel内容

excel文件内容:

在这里插入图片描述

files变量返回的数据

在这里插入图片描述

不会的直接复制,看效果,记得改你的云环境ID!得到数组数据想怎么操作就怎么操作!

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 12:52:17  更:2021-11-17 12:54:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:37:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码