在NetSuite's SuiteScript中创建Excel文件

Create Excel File in NetSuite's SuiteScript

本文关键字:创建 Excel 文件 SuiteScript NetSuite      更新时间:2023-09-26

我目前正在尝试使用NetSuite的基于javascript的SuiteScript api为电子邮件附件生成Excel文件。现在,生成CSV文件没有问题。这很简单。但Excel文件是什么要求,我有什么麻烦,但它。下面这行代码总是给我带来麻烦:

var dataFile = nlapiCreateFile(dataFilename, "EXCEL", fileData);

它总是导致脚本崩溃。到目前为止,我已经尝试了简单的CSV样式的数据格式化,也尝试了对数据使用XML格式,但是这两种方法都不起作用。与此同时,我们将把CSV文件踢出来,让他们将其转换为XLS,但如果有人对NetSuite的东西足够了解,可以提供帮助,那将是非常感谢的。如果有人想看XML生成的代码,我可以添加。

编辑:下面是为测试文件生成的XML示例…

<?xml version="1.0"?>
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
    <ss:Worksheet ss:Name="Sheet1">
        <ss:Table>
            <ss:Row>
                <ss:Cell>
                    <ss:Data ss:Type="String">Booth Number</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">Company</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">Address</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">City</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">State</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">Zip</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">Country</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">Telephone</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">Fax</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">Contact Name</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">Email</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">Booth Length</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">Booth Width</ss:Data>
                </ss:Cell>
            </ss:Row>
        </ss:Table>
    </ss:Worksheet>
</ss:Workbook>

试试这个:

var xlsFile = nlapiCreateFile('filename.xls', 'EXCEL', nlapiEncrypt(xmlString, 'base64'));
xlsFile.setFolder(folderID);
var fileID = nlapiSubmitFile(xlsFile);  

如果文件类型设置为EXCEL,则base64在将数据传递给nlapiCreateFile之前对数据进行编码

另一种选择是提供纯文本CSV数据并将类型传递为CSV。CSV文件可以用MS Excel打开