最近忙しくてきた、彼らは、Excelアプレットが書き込まれていない解決、そして最後に、有機書き込みは、この記事はあなたのすべてを与える今日をこっそりすることに合意しました。
古いルールは、レンダリングを見て
効果は実際には非常に簡単です、クラウドデータベースに保存し、解析されたデータにExcelにあります。それは簡単です。しかし、まだ多くの時間は、実際にそれを行うには、使用に何かを発見しました。信じてはいけません。。。。フローチャートでそれを見フローチャート
フロー・チャートを通じて、私は、クラウド機能を、クラウドストレージ、クラウドデータベースを使用するために私たちに見えます。
フローチャートは、主に以下の手順を実装します
- 1、wx.chooseMessageFileは、Excelスプレッドシートを解析することを選択します
- 2は、wx.cloud.uploadFile Excelでクラウドストレージにファイルをアップロード
- 3、クラウドストレージはFILEID私たちに返されます
- 4、機能雲エクセルの定義
- 図5に示すように、Excelのクラウド機能FILEIDへ転写工程3戻ります
- 6、クラウド内のExcel機能に優れを解析し、クラウド・データベースにデータを追加します。
あなたは、私たちは、クラウド機能をエクセルで最も神秘的な、最も重要なことを見ることができます。
だから我々は、達成するための最初の5つのステップを入れて、次のクラウドExcelの機能に注力背後にあります。
まず、選択してクラウドストレージExcelスプレッドシートにファイルをアップロード
ここでは、開発し、クラウドを使用し、使用のクラウド開発は、最初の小さなプログラムを登録し、自分で小さなプログラム立ち上げたクラウド開発力を与える必要があります。説明するために、私は何度も言ってきた知識、学生のクラウド開発を開いて使用する方法がわからない、私は以前の記事の下に目を通す、Iの外観や録画したビデオ「アプレットクラウド開発の取得5時間を。」
- 1は、最初に私達のページの定義
は、Excel、ボタンをクリックして選択したとき、それはchooseExcelメソッドを呼び出して、次の図のボタンで、ページが非常に簡単で
、以下にwxmlコード対応を - 2、ファイルの選択、アップロードファイルの作成方法
マップ上chooseExcelは、私たちのExcelファイルの選択方法です。
uploadExcelはfildIDを返します。成功したアップロードした後、当社のファイルのアップロード方法、です。私たちは、jiexiは、次の当社jiexiメソッドにfildIDを渡します - クラウドへの3 fildID伝達関数
第二には、ソリューション・ダウンは、私たちの雲の関数の定義です。
- 1は、私たちは、新しいクラウド機能を作成する必要があり
、我々は、私が記録したビデオ見ることができます、あなたは雲の関数を作成する方法がわからない場合、あなたは私が前に書いた記事を見ることができ、「アプレットクラウド開発の取得5時間」を
エクセルに示すように私達の機能は、クラウドを作成することです - 図2に示すように、ノードXLSXインストール依存関係は
右のExcel、上記に示し、端末で開く]をクリックします。端末を開いた後、
入力が従属ノードXLSXインストールをインストールNPM。あなたは、下図の設置プログレスバーを参照することができ
、このステップを、あなたはNode.jsのとのconfigure NPMコマンドを使用してコンピュータにインストールする必要があります。 - 3、ノードの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に示すように、第一のデータテーブルを作成します
- 2、時々解像度は常に失敗した場合、クラウドの初期化関数でクラウド開発環境を持っているいくつかのコンピュータが必要かもしれ
第四に、解析され、正常にアップロード
私の形態として、以下の3件のデータがある
アップロード]ボタンをクリックして、当社のスプレッドシートファイルを選択し
、次の成功のリターンのアップロード、あなたは私たちがデータベースに3つのデータを追加しました見ることができます
図の効果は、として正常に追加しました
ここでは、小さなプログラムの完全な実装に持っているデータベース機能へのアップロードデータをエクセル。
フローチャートで再び見て
問題が発生した場合は、一番下にメッセージを残すことができ、私のこぎりは速やかにお答えします。私は記事が出てきた以上、後にアプレットのクラウド開発の戦闘を書きます。また、このセクションでは、記録ビデオアウト、ので、しばらくお待ちます。