私はExcelファイルをドラッグアンドドロップできるようにしたいのですが、何らかの理由でワークブックを宣言するときにvar workbook = XLSX.read(data, {type: rABS ? 'binary':'array'});
に定義されていません。未知のReferenceError:ドロップファイルにXLSXが定義されていません
私はこのindex.jsをvar XLSX = require('xlsx');
が入っているserver.jsに接続するのに何か不足していると思います。私は見て、オンラインで見て、正しい修正を見つけていない。私はrequire()
のHTMLの中でモジュールを使うことを避けたいと思います。
server.js:
var express = require("express");
var app = express();
var XLSX = require('xlsx');
var fs = require('fs');
var JSON = require('JSON');
var path = require('path');
index.js:
$(document).ready(function(){
var rABS = true; // true: readAsBinaryString ; false: readAsArrayBuffer
$excelHolder.on('drop', function(e){
e.preventDefault();
var files = e.originalEvent.dataTransfer.files;
var file = files[0];
var reader = new FileReader();
console.log("got to before reader");
reader.onload = function (e) {
console.log("got to reader.onload");
var data =e.target.result;
var workbook = XLSX.read(data, {type: rABS ? 'binary':'array'});
var sheet_name_list = workbook.SheetNames;
var excelObj = XLSX.utils.sheet_to_json(workbook.Sheets[sheet_name_list[0]]);
var json = JSON.stringify(excelObj);
var callback = "looks like it worked";
console.log("did it upload?");
fs.writeFile('excelfile.json', json, function(err){
(err) ? console.error(err) : console.log(callback.toString());
});
// preview?
};
if(rABS) reader.readAsBinaryString(file); else reader.readAsArrayBuffer(file);
});
}
のindex.html:
<div class="huge">22</div>
<div>Uploads!</div>
<input name="uploads[]" type="file" accept=".xls,.xlsx,.ods,.csv" style="display: none;" id="excelInput">
どれでも私は重要なコードだと思う何
助けをたくさんいただきました。
このコードの実行場所は不明ですか?それはブラウザにありますか? –
はい、ブラウザで動作しています。 –