Windows 7: «Excel обнаружил нечитаемый контент» - PullRequest
7 голосов
/ 10 марта 2011

Я использую PHPExcel для создания очень простого файла .xls (PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel5')). Всякий раз, когда этот файл открывается в Windows 7 с помощью Excel 2010 или 2007, я получаю следующую ошибку:

Excel обнаружил нечитаемый контент в «XXXXXXX.xls». Вы хотите восстановить содержимое этой книги? Если вы доверяете источнику этой книги, нажмите Да.

Когда я открываю тот же файл в Excel 2010 в Windows XP, он работает нормально. Если я открываю тот же файл в OpenOffice, он работает независимо от операционной системы.

Windows 7 / Excel 2010: ошибка

Windows 7 / Excel 2007: ошибка

Windows XP / Excel 2010: Работы

Windows XP / Excel 2007: работает

Любой / OpenOffice: Работает

Когда я говорю PHPExcel сгенерировать файл .xlsx (PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007')), он прекрасно работает со всеми вышеперечисленными сочетаниями.

Я нашел бесчисленные темы на форумах MS, и, похоже, это касается только файлов Windows 7 с файлами Excel, созданными сторонними библиотеками (не только PHPExcel). Но ни у кого нет решения.

Я также нашел следующую статью MS KB, но я не знаком с базовыми спецификациями Excel: http://support.microsoft.com/kb/2411912

Кто-нибудь еще испытывал это?

Ответы [ 3 ]

2 голосов
/ 11 марта 2011

Если это проблема, которую вы отметили на сайте поддержки MS, то она заблокирована где-то во внутренностях PHP_OLE, возможно, в классе PHPExcel_Shared_OLE_PPS_File. Я поднял это как Issue 15508 на сайте PHPExcel и постараюсь выполнить некоторую отладку в выходные дни на коробке Windows 7.

Нет гарантии быстрого исправления: но вы дали мне указатель на то, как попытаться воссоздать проблему и где искать.

1 голос
/ 06 мая 2012

Вы должны написать UTF-8 заголовок, создатель, LastModifiedby и т. Д. ... поля.Это было мое решение.

1 голос
/ 28 июня 2011

Для меня это было исправлено, когда я использовал правильные строки в кодировке UTF-8 вместо ISO-8859-1. Может быть, PHPExcel может намекнуть о плохих кодировках?

...