0

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

2 回答 2

2

尝试这个:

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

var fileID = nlapiSubmitFile(xlsFile);  
于 2014-03-06T19:56:43.557 回答
0

If the file type is set to EXCEL than base64 encode your data before passing it to nlapiCreateFile.

Other option is that provide plain text CSV data and pass the type as CSV. CSV files can be opened by MS Excel

于 2013-01-11T09:25:13.987 回答