无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

小程序讀取excel表格數(shù)據(jù),并存儲到云數(shù)據(jù)庫

2019-11-12 16:56 作者:編程小石頭  | 我要投稿
最近一直比較忙,答應(yīng)大家的小程序解析excel一直沒有寫出來,今天終于忙里偷閑,有機會把這篇文章寫出來給大家了。

老規(guī)矩先看效果圖




效果其實很簡單,就是把excel里的數(shù)據(jù)解析出來,然后存到云數(shù)據(jù)庫里。說起來很簡單。但是真的做起來的時候,發(fā)現(xiàn)其中要用到的東西還是很多的。不信。。。。 那來看下流程圖

流程圖




通過流程圖,我看看到我們這里使用了云函數(shù),云存儲,云數(shù)據(jù)庫。
流程圖主要實現(xiàn)下面幾個步驟

  • 1,使用wx.chooseMessageFile選擇要解析的excel表格

  • 2,通過wx.cloud.uploadFile上傳excel文件到云存儲

  • 3,云存儲返回一個fileid 給我們

  • 4,定義一個excel云函數(shù)

  • 5,把第3步返回的fileid傳遞給excel云函數(shù)

  • 6,在excel云函數(shù)里解析excel,并把數(shù)據(jù)添加到云數(shù)據(jù)庫。

可以看到最神秘,最重要的就是我們的excel云函數(shù)。

所以我們先把前5步實現(xiàn)了,后面重點講解下我們的excel云函數(shù)。

一,選擇并上傳excel表格文件到云存儲

這里我們使用到了云開發(fā),使用云開發(fā)必須要先注冊一個小程序,并給自己的小程序開通云開發(fā)功能。這個知識點我講過很多遍了,還不知道怎么開通并使用云開發(fā)的同學(xué),去翻下我前面的文章,或者看下我錄的講解視頻《5小時入門小程序云開發(fā)》

  • 1,先定義我們的頁面
    頁面很簡單,就是一個按鈕如下圖,點擊按鈕時調(diào)用chooseExcel方法,選擇excel




對應(yīng)的wxml代碼如下



  • 2,編寫文件選擇和文件上傳方法




上圖的chooseExcel就是我們的excel文件選擇方法。
uploadExcel就是我們的文件上傳方法,上傳成功以后會返回一個fildID。我們把fildID傳遞給我們的jiexi方法,jiexi方法如下

  • 3 把fildID傳遞給云函數(shù)



二,解下來就是定義我們的云函數(shù)了。

  • 1,首先我們要新建云函數(shù)



如果你還不知道如何新建云函數(shù),可以翻看下我之前寫的文章,也可以看我錄的視頻《5小時入門小程序云開發(fā)》
如下圖所示的excel就是我們創(chuàng)建的云函數(shù)


  • 2,安裝node-xlsx依賴庫




如上圖所示,右鍵excel,然后點擊在終端中打開。 打開終端后,
輸入 npm install node-xlsx 安裝依賴??梢钥吹较聢D安裝中的進度條




這一步需要你電腦上安裝過node.js并配置npm命令。

  • 3,安裝node-xlsx依賴庫完成



三,編寫云函數(shù)

我把完整的代碼貼出來給大家

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 = [] //用來存儲所有的添加數(shù)據(jù)操作 ?//2,解析excel文件里的數(shù)據(jù) ?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]; //第幾行數(shù)據(jù) ? ? ?if (rowId > 0 && row) { //第一行是表格標題,所有我們要從第2行開始讀 ? ? ? ?//3,把解析到的數(shù)據(jù)存到excelList數(shù)據(jù)表里 ? ? ? ?const promise = db.collection('users') ? ? ? ? ?.add({ ? ? ? ? ? ?data: { ? ? ? ? ? ? ?name: row[0], //姓名 ? ? ? ? ? ? ?age: row[1], //年齡 ? ? ? ? ? ? ?address: row[2], //地址 ? ? ? ? ? ? ?wechat: row[3] //wechat ? ? ? ? ? ?} ? ? ? ? ?}) ? ? ? ?tasks.push(promise) ? ? ?} ? ?} ?}); ?// 等待所有數(shù)據(jù)添加完成 ?let result = await Promise.all(tasks).then(res => { ? ?return res ?}).catch(function(err) { ? ?return err ?}) ?return result }

上面代碼里注釋的很清楚了,我這里就不在啰嗦了。
有幾點注意的給大家說下

  • 1,要先創(chuàng)建數(shù)據(jù)表



image.png

  • 2,有時候如果老是解析失敗,可能是有的電腦需要在云函數(shù)里也要初始化云開發(fā)環(huán)境



四,解析并上傳成功

如我的表格里有下面三條數(shù)據(jù)





點擊上傳按鈕,并選擇我們的表格文件





上傳成功的返回如下,可以看出我們添加了3條數(shù)據(jù)到數(shù)據(jù)庫



添加成功效果圖如下




到這里我們就完整的實現(xiàn)了小程序上傳excel數(shù)據(jù)到數(shù)據(jù)庫的功能了。

再來帶大家看下流程圖



如果你有遇到問題,可以在底部留言,我看到后會及時解答。后面我會寫更多小程序云開發(fā)實戰(zhàn)的文章出來。也會錄制本節(jié)的視頻出來,敬請關(guān)注。


小程序讀取excel表格數(shù)據(jù),并存儲到云數(shù)據(jù)庫的評論 (共 條)

分享到微博請遵守國家法律
桂平市| 弥勒县| 敖汉旗| 万盛区| 梁平县| 明溪县| 大余县| 昌乐县| 河池市| 射洪县| 德保县| 鄂州市| 大姚县| 阜平县| 志丹县| 富顺县| 镇宁| 浦东新区| 云林县| 堆龙德庆县| 英德市| 内江市| 延庆县| 北碚区| 乡宁县| 开远市| 遵义县| 崇礼县| 宜良县| 新丰县| 扎鲁特旗| 尼玛县| 万载县| 福州市| 嘉荫县| 聂拉木县| 平泉县| 株洲市| 多伦县| 洪湖市| 东光县|