Powerbuilder saveas xlsx,170000行后它不起作用,返回-1或崩溃

Posted

技术标签:

【中文标题】Powerbuilder saveas xlsx,170000行后它不起作用,返回-1或崩溃【英文标题】:Powerbuilder saveas xlsx, after 170000 rows it's not working, returns -1 or crashes 【发布时间】:2013-09-13 13:16:59 【问题描述】:

我在使用 DataWindow SaveAs 函数时遇到问题。以前该函数使用 Excel8 格式,行数不超过 65536。但现在 DW 中可能有 300000 或更多行需要导出。

我已将SaveAs 格式更改为 XLSX!,我已成功保存 170000 行 66 列。

但它没有保存 180000 或更大的行数 DW-s。有时它崩溃或只是返回-1。但在那之后,我只有重新启动 Powerbuilder 才能导出更小的 dw-s。

这台机器使用的是 Windows 8,有 16GB 的 RAM,安装了 office,我使用的是 Powerbuilder 12.5.2 版。

我在另一台装有 Windows 7 和 3GB RAM 以及 Powerbuilder 12.5 的机器上做了一个小测试程序。我已经成功地保存了一个 .xlsx 格式的 DW,它有 990000 行和 15 列,尽管我添加了另一列并且它再次崩溃。

我已经阅读了 Excel 的限制,但它们似乎对我一直在尝试保存的内容没有问题。

知道在上述情况下要检查什么或做什么吗?

【问题讨论】:

我忍不住确认了这个行为。我只是把它写到 Excel 的内存问题上——我不相信它与 PB 有任何关系,但一切皆有可能。也许尝试使用列、格式来尝试找到一些内存密集度较低的组合。也可以尝试在具有较新版本 Excel 的机器上试一试,看看会发生什么。我相信我们通过保存到两个电子表格中解决了问题。 【参考方案1】:

我遇到了这个确切的问题,但克服这种情况的方法如下:

    将 dw 数据保存到 csv 文件中,这样就没有行数限制。 然后打开一个 OLE 对象并连接到 excel。 在 OLE 中打开保存的 csv。 下一步是将 ole excel 保存为已安装的 excel 格式,即 xls 或 xlsx。

希望这会有所帮助。

【讨论】:

以上是关于Powerbuilder saveas xlsx,170000行后它不起作用,返回-1或崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何在PowerBuilder 9.0中把当前数据窗口数据嫖猠xcel文档

为啥 Powerbuilder 12.5.2 需要 ghostscript 来创建 PDF?

将 xls 转换为 xlsx 并删除旧文件

Powershell Excel SaveAs 需要确认

如何使用自动覆盖的workbook.saveas

saveAs for Excel 文件在 VB.NET 中不起作用