有关调试Excel的提示

时间:2010-10-20 00:15:21

标签: delphi excel export-to-excel

我有一个可以将VCL网格的内容导出为XLS格式的库。 (不确定哪个版本的XLS格式;这是问题的一部分。)它通常可以正常工作,但在某些情况下,当我在Excel 2007中打开由此库导出的XLS时,它说“Excel找到了不可读的内容'[myfile.xls]'。你想恢复这个工作簿的内容吗?“

它能够正确地恢复它,所以不管问题是什么,它一定不会那么严重,但我很想知道问题是什么。我不能做任何简单的事情,比如在调试器下运行Excel,因为它是专有软件。我已经尝试将修正后的版本保存为各种版本的XLS并将这两个文件区分开来,但是我找不到任何看起来像原始文件格式的文件格式。恢复完成后,它会为我提供一个指向文件已恢复的XML文件的链接,而不会描述任何所发现或修复的错误。

有什么办法可以获得一些关于Excel期望看到什么以及它看到了什么的实际详细信息?

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

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