从text页面下载SheetJS脚本并将其放在我的Netsuite文件柜中,如下所示:
在我的restlet suitescript中,我尝试调用一些sheetJS函数。但是,当我调用 Restlet 时,出现此错误:
"message": "Cannot call method \"book_new\" of undefined"
有人知道我哪里可能出错吗?作为参考,我从以下位置获取了 xlsx.full.min.js 文件:
我的restlet的代码:
/**
*@NApiVersion 2.x
*@NScriptType Restlet
*/
define([
'./sheetJS/xlsx.full.min.js',
],
function (xlsx) {
function get(context) {
try {
var wb = XLSX.utils.book_new();
var ws_name = "SheetJS";
var ws_data = [
[ "S", "h", "e", "e", "t", "J", "S" ],
[ 1 , 2 , 3 , 4 , 5 ]
];
var ws = XLSX.utils.aoa_to_sheet(ws_data);
XLSX.utils.book_append_sheet(wb, ws, ws_name);
return 'Success';
} catch (err) {
log.audit({
title: 'ERROR',
details: JSON.stringify(err)
});
return err;
}
}
return {
get: get
};
}
);
尝试将
XLSX
的大小写更改为 xlsx
,因为这是函数的参数,并且 ECMA 脚本区分大小写(如果我知道 SuiteScript 不区分大小写,我会感到非常惊讶)。
我唯一怀疑的是错误消息说它是未定义的XLSX.utils
,而不是XLSX
。
简而言之,试试这个(我已经为你编辑过):
/**
*@NApiVersion 2.x
*@NScriptType Restlet
*/
define([
'./sheetJS/xlsx.full.min.js',
],
function (xlsx) {
function get(context) {
try {
var wb = xlsx.utils.book_new();
var ws_name = "SheetJS";
var ws_data = [
[ "S", "h", "e", "e", "t", "J", "S" ],
[ 1 , 2 , 3 , 4 , 5 ]
];
var ws = xlsx.utils.aoa_to_sheet(ws_data);
xlsx.utils.book_append_sheet(wb, ws, ws_name);
return 'Success';
} catch (err) {
log.audit({
title: 'ERROR',
details: JSON.stringify(err)
});
return err;
}
}
return {
get: get
};
}
);