2010-10-20 1 views
2

У меня есть библиотека, которая может экспортировать содержимое сетки VCL в формат XLS. (Не знаю, какая версия XLS-формата, это часть проблемы.) Обычно это работает нормально, но в некоторых случаях, когда я открываю XLS, который был экспортирован этой библиотекой в ​​Excel 2007, он говорит: «Excel нашел нечитаемый контент в '[myfile.xls]'. Вы хотите восстановить содержимое этой книги? "Советы по отладке в Excel

Он может восстановить его правильно, так что независимо от проблемы, это не должно быть так уж тяжело, но у меня есть чертовски время, выясняя, что проблема is. Я не могу сделать ничего простого, как запустить Excel под отладчиком, потому что это проприетарное программное обеспечение. Я попытался сохранить исправленную версию как различные варианты XLS и различать два файла, но я никогда не нахожу ничего, что выглядит даже удаленно, как формат файла оригинала. Когда восстановление завершено, оно дает мне ссылку на файл XML, в котором говорится, что документ был восстановлен, без описания ничего, кроме об обнаруженных или исправленных ошибках.

Есть ли способ получить фактическую подробную информацию о том, что Excel ожидал увидеть и что увидел вместо этого?

+0

Просто для уточнения: это * файл XLS, а не файл XLSX? Кроме того, если я не ошибаюсь, спецификации xls свободно доступны от Microsoft, поэтому, если у вас есть несколько месяцев, чтобы потратить, вы всегда можете изучить спецификации, а затем использовать еще пару месяцев, чтобы узнать, что не так с создаваемыми файлами (используя шестнадцатеричный редактор). –

+0

Еще один комментарий, такой же непрактичный, как и выше: я считаю, что OpenOffice может читать файлы XLS, а OpenOffice - с открытым исходным кодом. Итак, если вы можете потратить несколько месяцев ... –

+0

Да, это XLS, а не XLSX. –

ответ

0

Это очень поможет, если у вас есть имя компонента сетки и библиотеки экспорта. Возможно, вы также можете связаться с создателями этих библиотек и проверить их сайты на наличие обновлений?

5

Excel версии 5 и более поздние версии используют составные файлы для сохранения их содержимого. Эти файлы начинаются с d0 cf 11 e0 a1 b1 1a e1. Вероятно, у вас есть не сложный файл, а двоичное представление книги, как описано в MICROSOFT OFFICE EXCEL 97-2007 BINARY FILE FORMAT SPECIFICATION. Я не знаю, к какой версии BIFF экспортируется ваша сетка.

Поскольку вы «случайно» получаете эти ошибки, я думаю, что есть ошибка в коде, который генерирует файл xls. Лучшее, что вы можете сделать, это попытаться сделать воспроизводимый случай и связаться с производителем этого компонента. Может быть, это связано с Юникодом? Некоторые символы, вызывающие ошибку? Возможно, форматы даты?

+0

Да, похоже, это связано с форматами даты и времени. –

+0

Спасибо за ссылку. Это начинается с чего-то совершенно другого. Я просмотрю спецификацию и посмотрю, что я могу найти ... –