如何在使用suitelet创建的excel文件中传递动态值

时间:2017-01-07 09:07:08

标签: netsuite suitescript

我在suitelet中创建了一个excel文件。我想在excel文件中传递动态值,所以我该怎么做。对于Eg: 我想通过:

  var transaction_id = searchresult.getValue("internalid",'transaction');

在excel文件中。

我尝试了下面的方法,但它抛出了损坏的文件错误。 *注意:在将动态数据传递给文件时,生成带有静态数据的文件会出现问题。

  var xmlStr = '<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?>';
    xmlStr += '<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" ';
    xmlStr += 'xmlns:o="urn:schemas-microsoft-com:office:office" ';
    xmlStr += 'xmlns:x="urn:schemas-microsoft-com:office:excel" ';
    xmlStr += 'xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" ';
    xmlStr += 'xmlns:html="http://www.w3.org/TR/REC-html40">';

    xmlStr += '<Worksheet ss:Name='sheet_name'>';

    //Below mention is the place(transaction_id) where I want to pass the dynamic value 
    xmlStr += '<Table>' +
    '<Row>' +
    '<Cell><Data ss:Type="String">transaction_id</Data></Cell>' +
    '</Row>';

xmlStr += '</Table></Worksheet></Workbook>';

var xlsFile = nlapiCreateFile('sheet_name.xls', 'EXCEL', nlapiEncrypt(xmlStr, 'base64'));

xlsFile.setFolder(6157);

var fileID = nlapiSubmitFile(xlsFile);

由于

1 个答案:

答案 0 :(得分:4)

假设您已经将transaction_id作为变量,并且已经适当地填充了它,您只需要将两个标记字符串与您的变量连接起来:

'<Cell><Data ss:Type="String">' + transaction_id + '</Data></Cell>' +