希望您可以提供帮助。
我在SuiteScript 2.0中具有计划的脚本,该脚本执行以下操作:
1)从文件柜加载XML文件(下面的代码片段:
var fileObj = FILEMODULE.load({id: fileId });
if (fileObj.size < 10485760){
log.debug('units to start with', RUNTIMEMODULE.getCurrentScript().getRemainingUsage());
log.debug('file contents', fileObj.getContents());
return fileObj.getContents();
}
此XML文件用作Excel生成的模板。
2)运行保存的搜索并在结果循环内调用一个函数以公式化行和单元格:
content += '<Row>'
content += '<Cell ss:StyleID="s67"><Data ss:Type="String">' + data + '</Data></Cell>';
循环结束,我们用"<Row>"
关闭"</Row>"
3)最后,我们将HTML代码的最后一部分添加到用于Excel文件内容的内容字符串中:
content += '</Table></Worksheet></Workbook>';
4)创建文件,并上传到文件柜
var xlsFile = FILEMODULE.create({name: 'TEST.xls', fileType: 'EXCEL', contents: base64EncodedString});
xlsFile.folder=1173; //folder name=XML Templates
var fileID = xlsFile.save();
但是...
5)在没有数据的情况下打开时,它可以正常工作(这确认XML模板很好)。
6)从搜索中打开两行数据后,它可以正常工作。所有26列均打印在单元格中。
7)之后,添加多于2行会导致损坏错误。文件拒绝打开。
[我已经在线使用XML美化工具来检查xml代码,老实说,第1行和第2行的代码从第3行开始看起来并没有太大区别。
在Notepad ++上检出excel文件以检查xml代码,所有新行都注册为一行(而不是新行)-注意屏幕截图停在第169行...这可能是为什么吗?
关于诊断此问题的任何想法,将不胜感激。
注意:初始模板是通过在Excel上以所需样式/格式创建标题,然后另存为“ XML Spreadsheet”而构建的。
<Row><Cell/><Cell/> //not closing the row for each row of search results.
<Row><Cell/><Cell/>
<Row><Cell/><Cell/>
...
</Row>
为了清楚起见,您可能希望在每行之后输出换行符。检查规范XML应该只允许换行,但是由于这是MS格式,因此他们可能需要CRLF。