如何在netsuite suitescript中读写xlsx文件

问题描述 投票:0回答:2

如何直接读取 xlsx 文件并从 suitescript 中保存它。 我正在尝试使用 exceljs,但它在服务器脚本中不正确。

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()
    }
});
netsuite suitescript
2个回答
0
投票

您可以检查我在 SuiteScript 2.x 中的实现,以使用外部库编写 XLSX 文件(无着色、格式化等)。

这是非常基本的,仅用于概念证明,请在此处检查: https://github.com/gmihaylov/netsuite-saved-search-export-excel-xlsx

希望这会有所帮助。


-1
投票

这里有一个服务器脚本: 定义(['N / ui / serverWidget','N /运行时','N /文件','N /搜索','N /渲染','N /编码','N /记录','N /重定向'], 函数(ui、运行时、文件、搜索、渲染、编码、记录、重定向){

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, '&amp;');
        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
};

});

© www.soinside.com 2019 - 2024. All rights reserved.