PHP создал Excel Sheet создает ошибки при открытии
==================================================

Итак, мой текущий код работает на 100%, файл сделан, и он открывается в Excel. Но при открытии есть несколько ошибок, которые нужно щелкнуть, чтобы открыть файл. Они заключаются в следующем:

Формат файла и расширение файла address-book.xls не совпадают. Файл может быть поврежден или небезопасен. Если вы не доверяете его источнику, не открывайте его. Вы все равно хотите его открыть?

Затем:

Excel обнаружил, что address-book.xls является файлом SYLK, но не может его загрузить. Либо файл содержит ошибки, либо это не файл формата SYLK. Нажмите OK, чтобы попытаться открыть файл в другом формате.

Тогда наконец:

Формат файла и расширение файла address-book.xls не совпадают. Файл может быть поврежден или небезопасен. Если вы не доверяете его источнику, не открывайте его. Вы все равно хотите его открыть?

После этого он неохотно открывается. Вот код, который его создает. Любая помощь в форматировании электронной таблицы, например, наличие достаточно больших ячеек для содержимого, была бы полезной. Но избавление от ошибок при открытии - мой приоритет.

?>

Ошибка PHPExcel:

Ошибка возникает, когда она попадает в оператор while, если я убираю эту часть, она работает.

`ID` как первые два байта вашего файла. Это подпись для файла SYLK, старого формата электронных таблиц, используемого Multiplan (символьный обмен ссылками - формат файла SYLK), предшественника Microsoft Excel.

Самый простой способ решить эту проблему - это избежать`ID` в качестве заголовка и использовать`Id` (IIRC, подпись SYLK чувствительна к регистру) или`Key` или какое-то другое текстовое значение вместо

Вы сохраняете свой файл с`xls` расширение, но вы на самом деле не используете формат Excel, просто формат CSV; поэтому MS Excel будет жаловаться, что формат не соответствует расширению .... либо измените расширение на`.csv` соответствовать фактическому формату файла, который вы создаете; или создайте настоящий файл Excel в формате BIFF

`Any help with formatting the spreadsheet, such as having the cells be big enough for the content would be great.`

Используемый формат csv (с разделителем табуляции) не поддерживает форматирование любого вида, включая ширину столбцов. Если вы этого хотите, то вам нужно переключиться на настоящий формат электронных таблиц (по совпадению, SYLK - это настоящий формат электронных таблиц, хотя он довольно устарел, и я бы не стал его особенно рекомендовать), таких как BIFF для реальных файлов xls, OfficeOpenXML для xlsx файлы, OASIS для файлов ods.

Заголовки, которые я использую для файлов OfficeOpenXML xlsx: