【问题标题】:Tips on debugging into Excel调试到 Excel 的提示
【发布时间】:2010-10-20 00:15:20
【问题描述】:

我有一个库,可以将 VCL 网格的内容导出为 XLS 格式。 (不确定是哪个版本的 XLS 格式;这是问题的一部分。)它通常工作得很好,但在某些情况下,当我在 Excel 2007 中打开由该库导出的 XLS 时,它会显示“Excel 在'[myfile.xls]'。是否要恢复此工作簿的内容?"

它能够正确地恢复它,所以无论问题是什么,它一定不会那么严重,但我有一段时间弄清楚问题是什么。我不能做任何简单的事情,比如在调试器下运行 Excel,因为它是专有软件。我尝试将更正后的版本保存为各种风格的 XLS 并比较这两个文件,但我从未找到任何看起来与原始文件格式相差甚远的东西。恢复完成后,它会为我提供一个指向 XML 文件的链接,该文件表明文档已恢复,而没有描述任何关于发现或修复的错误。

有什么方法可以让我获得一些关于 Excel 期望看到的内容以及它看到的内容的实际详细信息?

【问题讨论】:

  • 只是澄清一下:它一个 XLS 文件,而不是一个 XLSX 文件?另外,如果我没记错的话,微软可以免费获得 xls 规范,所以如果你有几个月的时间,你总是可以学习规范,然后再用几个月的时间来看看生成的文件有什么问题(使用十六进制编辑器)。
  • 另一个和上面一样不实用的评论:我认为 OpenOffice 可以读取 XLS 文件,并且 OpenOffice 是开源的。所以如果你能花几个月的时间......

标签: delphi excel export-to-excel


【解决方案1】:

Excel 版本 5 及更高版本使用复合文件来保存其内容。这些文件以d0 cf 11 e0 a1 b1 1a e1 开头。您可能拥有的不是复合文件,而是工作簿的二进制表示,如MICROSOFT OFFICE EXCEL 97-2007 BINARY FILE FORMAT SPECIFICATION 中所述。我不知道您的网格导出到哪个版本的 BIFF。

由于您“随机”收到这些错误,我认为生成 xls 文件的代码中存在错误。您可以做的最好的事情是尝试制作可重现的案例并联系该组件的制造商。也许它与unicode有关?导致错误的某些字符?日期格式可能吗?

【讨论】:

  • 感谢您的链接。这从完全不同的东西开始。我会查看规范,看看我能找到什么......
【解决方案2】:

如果您有网格组件的名称和导出库,这将很有帮助。也许您也可以联系这些库的创建者并检查他们的网站以获取更新?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多