'how can read and write xlsx file in netsuite suitescript
how can read direcly xlsx file and save it from suitescript. Iam tring using exceljs but it not propely in server script.
const workbook = new Excel.Workbook();
workbook.xlsx.readFile('../datafiles/mydata.xlsx').then(() => {
var sheet = workbook.getWorksheet("data");
console.log(sheet.actualRowCount)
for (var i = 1; i <= sheet.actualRowCount; i++) {
for (var j = 1; j <= sheet.actualColumnCount; j++) {
data = sheet.getRow(i).getCell(j).toString();
process.stdout.write(data+" ");
// console.log(data)
}
console.log()
}
});
Solution 1:[1]
Here you have a server script: define(['N/ui/serverWidget', 'N/runtime', 'N/file', 'N/search', 'N/render', 'N/encode', 'N/record', 'N/redirect'], function(ui, runtime, file, search, render, encode, record, redirect) {
function generateXLS(){
var url;
try {
log.debug('generateXLS','* * S T A R T * * ->' + runtime.getCurrentScript().getRemainingUsage());
xmlString = generateXlsHeader(objData);
xmlString += generateXlsBody(objData);
name = 'Excel_Information_' + objData.customerData.internalId + '.xls';
base64EncodedString = encode.convert({
string: xmlString,
inputEncoding: encode.Encoding.UTF_8,
outputEncoding: encode.Encoding.BASE_64
});
base64EncodedString = base64EncodedString.replace(/&/g, '&');
objExcel = file.create({
name: name,
fileType: file.Type.EXCEL,
contents: base64EncodedString
});
repFolderID = 1234;
if (isEmpty(repFolderID)) {
throw 'repFolderID missing';
}
objExcel.folder = repFolderID;
fileId = objExcel.save();
fileObj = file.load({
id: fileId
});
url = fileObj.url;
log.debug('generateXLS','* * E N D * * ->' + runtime.getCurrentScript().getRemainingUsage());
} catch (error) {
log.error('generateXLS', error);
}
return url;
}
function onRequest(context) {
generateXLS();
}
return {
onRequest: onRequest
};
});
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Camilo Castellano |
