Comments 24
Пожалуйста, укажите в теме, что всё вышеперечисленное, работает только под Windows.
И ещё не забудьте что нужен не только Windows, но ещё и установленный на нём Office.
С этими com-функциями люди с Windows, но openoffice и др. вместо MS Office тоже «отдыхают». Так что область их применения крайне низкая, поэтому по ним даже документаций толковых нет. Советую не пользоваться когда что-то делаете не для одного компьютера.
А чем вас не устраивает решение Spreadsheet_Excel_Writer? Кроссплатформенно, навалом документации и примеров, работает без проблем (есть конечно трудности когда затираешь ячейку).
Существует множество решений и не только это.
Данный метод реализован при помощи COM-объектов и даже если на практике не пригодится, для общего развития, думаю, лишним не будет.
Файлы он не открывает, а значит и изменять документы не может.
Файлы он не открывает, а значит и изменять документы не может.

У меня создаётся впечатление, что народ открывает статью не для того, что бы её прочитать, а что бы просто чё-нить написать в комментах.
Чтаем материал под заголовком «Открытие ранее созданного документа», который находится на две тысячи пикселей выше.
Извиняюсь, не сразу сообразил о чём речь.
Сказывается недосыпание :(
Согласен, разве что Spreadsheet_Excel_Writer к сожалению ест слишком много оперативки, поэтому если требуется выгрузить очень много инфы — придётся подумать об альтернативах
UFO landed and left these words here
Уж извините, но передо мной стояла именно такая задача. Именно средствами PHP и именно на винде.
Для общего развития можно взять любой язык. Мне лично ближе PHP ибо им сейчас занимаюсь. А толковый/не толковый — всё в конечном итоге зависит от составленного ТЗ.
А можно просто создавать таблицу html, указать тип файла .xls, и ексель с радостью его скушает.
ну для примера напишите в текстовом файле:

<table>
<tr>
<td width=100>text
</td>
<td><b>text</b>
</td>
</tr>
</table>

и назовите файл text.xls
Попробуйте его открыть
Кстати, в моем движке магазина генерируется прайс в формате екселя без всяких библиотек.
Вот живой пример: скачивание прайса с интернет-магазина:

simplacms.ru/demo/pricelist.xls

Откройте этот файл как простой текст, посмотрите
Именно так я сделал в одном своем проекте на работе. Нужно было формировать отчеты сложной формы (налоговую накладную, счета, другие) на основе данных из таблиц MySQL. Благо, формы отчетов в виде файла Excel были, сохранил их в формате html, добавил необходимые специальные теги (чтобы можно было вместо них подставлять свои значения), за полчаса сделал небольшой парсер для замены спецтегов. Правда, программа была на С++ (Visual C++), еще час отладки — отличный создатель отчетов произвольной формы своими силами. Вот уже 4 года, как исправно работает…

Так что такой вариант имеет право на жизнь
Если шрифты не нужны, то лучше csv использовать. Проблем меньше, читается везде, оверхеда почти нет.
Соль как раз таки и заключается в том, что бы впоследствии можно было отформатировать ширину колонок, толщину границ, типы и размеры шрифтов в отдельно взятых ячейках.
Про CSV, мне кажется, знают все, кто когда-либо занимался импортом/экспортом данных.
Увы… Если работает только на Виндусе, то толку маловато…
Но все же, может кому-то пригодится.
Делал проще. Можно набрасать книгу в Excel и сохранить в формате XML (вроде поддерживается с 2003 версии). Далее работать с этим файлом либо как с XML-кой, либо, если логика простая можно как с обычным шаблоном, например, в Smarty. Итоговый файл сохраняется с расширением xls и для пользователя ничем от обычного не отличается.
Есть готовые библиотеки для PHP, создают XLS-XML, а некоторые — даже и «бинарник».
|…
| $xls->Workbooks->Open(«C:\my_doc.xls»); // Открываем ранее сохраненный документ
| ?>
| Внимание! Если указать не полный, а относительный путь,
| то поиск открываемого файла будет происходить не
| на сервере, а на компьютере пользователя. По умолчанию это папка «Мои документы».

Можно об этом подробнее?
Only those users with full accounts are able to leave comments. Log in, please.