在NetSuite的SuiteScript中创建Excel文件

时间:2013-01-10 16:01:30

标签: javascript excel netsuite

我目前正在尝试使用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>

2 个答案:

答案 0 :(得分:2)

试试这个:

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

var fileID = nlapiSubmitFile(xlsFile);  

答案 1 :(得分:0)

如果文件类型设置为EXCEL而不是 base64编码数据,然后再将其传递给nlapiCreateFile。

其他选项是提供纯文本CSV数据并将类型传递为 CSV 。可以通过MS Excel打开CSV文件