【问题标题】:Create Excel File in NetSuite's SuiteScript在 NetSuite 的 SuiteScript 中创建 Excel 文件
【发布时间】:2013-01-10 16:01:29
【问题描述】:

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

【问题讨论】:

  • 什么是文件数据? netsuite 文档给出了关于二进制文件格式的混合信息。在一个地方它说二进制内容必须是 base-64 编码,在另一个地方它说“nlapiCreateFile 函数不支持创建非文本文件类型”。

标签: javascript excel netsuite


【解决方案1】:

试试这个:

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

var fileID = nlapiSubmitFile(xlsFile);  

【讨论】:

  • 谢谢!这主要起到了作用。对于迟到的回复,我们深表歉意。我刚才注意到有一个编辑。我现在唯一遇到的问题是在 Excel 中打开生成的文件时,它会弹出一条警告,指出该文件的格式与扩展名指定的格式不同。我不知道数据格式是否与它有关,但这里是 XML 的示例:
【解决方案2】:

如果文件类型设置为 EXCEL,则base64 对您的数据进行编码,然后再将其传递给 nlapiCreateFile。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    相关资源
    最近更新 更多