我正在使用dojo进行客户端开发。整个项目是基于Node构建的,但是对于前端,我将使用Dojo。我对使用dojo还是比较陌生,但是到目前为止,我已经设法创建了自己的自定义小部件,并将它们显示在html页面上的问题相对较少。现在,我尝试在dojo小部件中合并使用外部Node.js库{ SheetJS }。我已经尝试了一切想使它正常工作的方法,但是似乎每件事我都尝试了与先前尝试不同的错误。
我的文件结构如下:
My Project
Public
Dojo
Dojo
Dijit
Dstore
Templates
我尝试了以下操作:
public/dojo
文件夹下添加从GitHub下载的完整xlsx文件夹。然后,我尝试执行以下操作:define([
"dojo/_base/declare",
"xlsx/xlsx"
],
function (declare, xlsx) {
// ... declare and other things ...
/* Generate Workbook */
console.log(xlsx); // prints: not-a-module
var wb = xlsx.utils.book_new();
var ws = xlsx.utils.aoa_to_sheet(tempArr);
xlsx.utils.book_append_sheet(wb, ws, "SheetJS");
/* Trigger Download with `writeFile` */
xlsx.writeFile(wb, "SheetJS.csv", {compression:true});
});
我得到的错误是:
未捕获的TypeError:无法读取未定义的属性'book_new'
<script lang="javascript" src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
define([
"dojo/_base/declare",
"https://unpkg.com/xlsx/dist/xlsx.full.min.js"
],
function (declare) {
// ... declare and other things ...
/* Generate Workbook */
console.log(XLSX); // prints: {}
var xlsx = XLSX;
var wb = xlsx.utils.book_new();
var ws = xlsx.utils.aoa_to_sheet(tempArr);
xlsx.utils.book_append_sheet(wb, ws, "SheetJS");
/* Trigger Download with `writeFile` */
xlsx.writeFile(wb, "SheetJS.csv", {compression:true});
});
这里的错误是:
未捕获的TypeError:无法读取未定义的属性'book_new'
cd
进入public/dojo/dojo/
并进行npm install xlsx
,然后尝试执行以下操作:define([
"dojo/_base/declare",
"dojo/node!xlsx"
],
function (declare, xlsx) {
// ... declare and other things ...
/* Generate Workbook */
console.log(xlsx);
var wb = xlsx.utils.book_new();
var ws = xlsx.utils.aoa_to_sheet(tempArr);
xlsx.utils.book_append_sheet(wb, ws, "SheetJS");
/* Trigger Download with `writeFile` */
xlsx.writeFile(wb, "SheetJS.csv", {compression:true});
});
我得到的错误是:
未捕获的错误:找不到Node.js要求
我想知道问题是否与XLSX库有关,当它尝试找到XLSX.utils
时找不到我要使用的实用程序吗?
欢迎所有想法。预先感谢您提供的任何帮助或想法。
答案 0 :(得分:0)
n=23583
for i=1:n
TO(i,:) = interp1(P(i,:),T(i,:),PO)
end
时,xlsx库将安装在项目的npm install xlsx
文件夹中。
我不确定您当前的项目结构,但是应该从您的Dojo小部件中找到相对应的项目。
例如:
node_modules