Вы не создаете файл XLS, вы создаете неверно сформированный файл HTML с именем, оканчивающимся на .xls.
На самом деле, вы даже этого не делаете, поскольку файлов нетв Интернете (есть потоки, которые могут или не могут оказаться в файлах).
Различные версии Open Office с разными настройками будут отличаться в зависимости от того, как они справляются с ошибками.Версия на одной из машин, которую вы делаете, гласит: «да, это не XLS, о! Это HTML с таблицей, я знаю, что делать», в то время как другая добирается до «да, это не так».t XLS, это куча текста со странными символами меньше и больше, чем везде, что мне делать ".
Что вы хотите сделать, это создать реальный поток, который Open Office идругие таблицы могут иметь дело с.XLS возможен, но довольно сложно.Вместо этого перейдите на CSV.
Если ваша таблица должна была быть:
<table>
<tr>
<th>1 heading</th><th>2 & last heading</th>
</tr>
<tr>
<td>1st cell</td><td>This is the "ultimate" cell</td>
</tr>
</table>
Тогда она должна стать:
"1 heading","2 & last heading"
"1st cell","This is the ""ultimate"" cell"
Другими словами, в новых строках указываются строки, запятыедля обозначения ячеек, без кодировки HTML, кавычки вокруг всего и кавычки в вашем фактическом контенте удваиваются.(Вам не нужно всегда иметь кавычки на вашем контенте, но это никогда не ошибается, так что это проще, чем работать, когда они вам нужны).
Теперь создайте тип контента "text / csv".
Теперь вы выводите поток CSV, который можно сохранить в виде файла CSV.Ваше программное обеспечение для работы с электронными таблицами будет иметь гораздо лучшее представление о том, что с этим делать (оно может по-прежнему спрашивать о кодировке символов при открытии, но при предварительном просмотре вам будет показана электронная таблица с данными, а не набор источников HTML повсюду.