从mysql读取数据保存成excel_小程序读取excel表格数据,并存储到云数据库
最近一直比較忙,答應大家的小程序解析excel一直沒有寫出來,今天終于忙里偷閑,有機會把這篇文章寫出來給大家了。
老規矩先看效果圖
效果其實很簡單,就是把excel里的數據解析出來,然后存到云數據庫里。說起來很簡單。但是真的做起來的時候,發現其中要用到的東西還是很多的。不信。。。。 那來看下流程圖
流程圖
通過流程圖,我看看到我們這里使用了云函數,云存儲,云數據庫。
流程圖主要實現下面幾個步驟1,使用wx.chooseMessageFile選擇要解析的excel表格
2,通過wx.cloud.uploadFile上傳excel文件到云存儲
3,云存儲返回一個fileid 給我們
4,定義一個excel云函數
5,把第3步返回的fileid傳遞給excel云函數
6,在excel云函數里解析excel,并把數據添加到云數據庫。
可以看到最神秘,最重要的就是我們的excel云函數。
所以我們先把前5步實現了,后面重點講解下我們的excel云函數。
一,選擇并上傳excel表格文件到云存儲
這里我們使用到了云開發,使用云開發必須要先注冊一個小程序,并給自己的小程序開通云開發功能。這個知識點我講過很多遍了,還不知道怎么開通并使用云開發的同學,去翻下我前面的文章,或者看下我錄的講解視頻《5小時入門小程序云開發》1,先定義我們的頁面
頁面很簡單,就是一個按鈕如下圖,點擊按鈕時調用chooseExcel方法,選擇excel
對應的wxml代碼如下
2,編寫文件選擇和文件上傳方法
上圖的chooseExcel就是我們的excel文件選擇方法。
uploadExcel就是我們的文件上傳方法,上傳成功以后會返回一個fildID。我們把fildID傳遞給我們的jiexi方法,jiexi方法如下3 把fildID傳遞給云函數
二,解下來就是定義我們的云函數了。1,首先我們要新建云函數
如果你還不知道如何新建云函數,可以翻看下我之前寫的文章,也可以看我錄的視頻《5小時入門小程序云開發》
如下圖所示的excel就是我們創建的云函數
2,安裝node-xlsx依賴庫
如上圖所示,右鍵excel,然后點擊在終端中打開。 打開終端后,
輸入 npm install node-xlsx 安裝依賴??梢钥吹较聢D安裝中的進度條
這一步需要你電腦上安裝過node.js并配置npm命令。3,安裝node-xlsx依賴庫完成
三,編寫云函數
我把完整的代碼貼出來給大家
const cloud = require('wx-server-sdk')
cloud.init()
var xlsx = require('node-xlsx');
const db = cloud.database()
exports.main = async(event, context) => {
let {
fileID
} = event
//1,通過fileID下載云存儲里的excel文件
const res = await cloud.downloadFile({
fileID: fileID,
})
const buffer = res.fileContent
const tasks = [] //用來存儲所有的添加數據操作
//2,解析excel文件里的數據
var sheets = xlsx.parse(buffer); //獲取到所有sheets
sheets.forEach(function(sheet) {
console.log(sheet['name']);
for (var rowId in sheet['data']) {
console.log(rowId);
var row = sheet['data'][rowId]; //第幾行數據
if (rowId > 0 && row) { //第一行是表格標題,所有我們要從第2行開始讀
//3,把解析到的數據存到excelList數據表里
const promise = db.collection('users')
.add({
data: {
name: row[0], //姓名
age: row[1], //年齡
address: row[2], //地址
wechat: row[3] //wechat
}
})
tasks.push(promise)
}
}
});
// 等待所有數據添加完成
let result = await Promise.all(tasks).then(res => {
return res
}).catch(function(err) {
return err
})
return result
}
上面代碼里注釋的很清楚了,我這里就不在啰嗦了。
有幾點注意的給大家說下1,要先創建數據表
image.png2,有時候如果老是解析失敗,可能是有的電腦需要在云函數里也要初始化云開發環境
四,解析并上傳成功
如我的表格里有下面三條數據
點擊上傳按鈕,并選擇我們的表格文件
上傳成功的返回如下,可以看出我們添加了3條數據到數據庫
添加成功效果圖如下
到這里我們就完整的實現了小程序上傳excel數據到數據庫的功能了。
再來帶大家看下流程圖
如果你有遇到問題,可以在底部留言,我看到后會及時解答。后面我會寫更多小程序云開發實戰的文章出來。也會錄制本節的視頻出來,敬請關注。
總結
以上是生活随笔為你收集整理的从mysql读取数据保存成excel_小程序读取excel表格数据,并存储到云数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python质数列_现代化程序开发笔记(
- 下一篇: 特斯拉供应商 IDRA 将为沃尔沃汽车提