SuiteScript 2.0:我使用 context.response.writeFile(file) 将数据导出到 excel,但它是 return String
SuiteScript 2.0 : i use context.response.writeFile(file) to export data to excel,but it return String
我添加一个button.when我点击按钮,它会执行这个功能。
function onRequest(context) {
log.debug('exportTest');
var stringInput = 'Hello World\nHello World';
var base64EncodedString = encode.convert({
string : stringInput,
inputEncoding : encode.Encoding.UTF_8,
outputEncoding : encode.Encoding.BASE_64
});
var fileUrl = file.create({
name : 'test.txt',
fileType : file.Type.PLAINTEXT,
contents : base64EncodedString
});
log.debug('fileUrl',fileUrl);
context.response.writeFile({
file : fileUrl
});
}
我想获取一个名为 'test.txt' 的文件,但它 return 是一个字符串。
enter image description here
它似乎返回的正是您所要求的 - 即 'Hello World\nHello World' 编码为 base64 字符串。要显示原始文本,您需要再次解码,或者对于此示例,您可以跳过编码,因为它只是文本。
我现在知道怎么做了。
1.add 一个按钮
function beforeLoad(scriptContext) {
if(scriptContext.type == scriptContext.UserEventType.VIEW){
var form = scriptContext.form;
form.addButton({
id: "custpage_export_test",
label: "Export Test",
functionName: 'exportExcel'
});
form.clientScriptModulePath = './export_test.js';
}
}
2.the export_test.js
function exportExcel(context) {
var suiteletURL = url.resolveScript({
scriptId:'customscript_export_excel',
deploymentId:'customdeploy_export_excel',
params:context
})
var downloadLink = document.createElement('a');
downloadLink.href = suiteletURL;
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}
3.the export_excel.js
function onRequest(context) {
var response = context.response;
log.debug('exportTest');
var stringInput = 'Hello World\nHello World';
var excelFile = file.create({
name: 'test.txt',
fileType: file.Type.PLAINTEXT,
contents: stringInput
});
response.writeFile(excelFile);
}
我添加一个button.when我点击按钮,它会执行这个功能。
function onRequest(context) {
log.debug('exportTest');
var stringInput = 'Hello World\nHello World';
var base64EncodedString = encode.convert({
string : stringInput,
inputEncoding : encode.Encoding.UTF_8,
outputEncoding : encode.Encoding.BASE_64
});
var fileUrl = file.create({
name : 'test.txt',
fileType : file.Type.PLAINTEXT,
contents : base64EncodedString
});
log.debug('fileUrl',fileUrl);
context.response.writeFile({
file : fileUrl
});
}
我想获取一个名为 'test.txt' 的文件,但它 return 是一个字符串。 enter image description here
它似乎返回的正是您所要求的 - 即 'Hello World\nHello World' 编码为 base64 字符串。要显示原始文本,您需要再次解码,或者对于此示例,您可以跳过编码,因为它只是文本。
我现在知道怎么做了。 1.add 一个按钮
function beforeLoad(scriptContext) {
if(scriptContext.type == scriptContext.UserEventType.VIEW){
var form = scriptContext.form;
form.addButton({
id: "custpage_export_test",
label: "Export Test",
functionName: 'exportExcel'
});
form.clientScriptModulePath = './export_test.js';
}
}
2.the export_test.js
function exportExcel(context) {
var suiteletURL = url.resolveScript({
scriptId:'customscript_export_excel',
deploymentId:'customdeploy_export_excel',
params:context
})
var downloadLink = document.createElement('a');
downloadLink.href = suiteletURL;
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}
3.the export_excel.js
function onRequest(context) {
var response = context.response;
log.debug('exportTest');
var stringInput = 'Hello World\nHello World';
var excelFile = file.create({
name: 'test.txt',
fileType: file.Type.PLAINTEXT,
contents: stringInput
});
response.writeFile(excelFile);
}