Наверняка любой php программист сталкивался с ситуацией, когда заказчик просит “экспорт товара из экзеля” или чего бы то ни было. И стон идет по всей земле русской (и нерусской)…
Первое, что приходит в голову – это каждый раз запускать Excel и сохранять файл в формате CSV, с которым php уже намного легче работать. Это – замечательное решение, когда число файлов меньше 10 и все они состоят только из одной страницы (поскольку экзель может экспортировать в CSV только страницы, те результат конвертации файла из 10 страниц будет 10 CSV файлов).
Вторая мысль: скачать какую-нибудь софтину, которая бы преобразовывала набор Excel файлов в CSV, включая все страницы. Но, погуглив чуток, сразу видно, что софтины эти все сплошь коммерческие. Можно, конечно, сломать.
Но есть и другой пусть: написать самому. Это очень легко реализуется, если использовать javascript и ActiveX компонент Excel.Application:
Этот скрипт необходимо поместить в папку с набором XLS файлов, создать папку output и tmp и набрать в коммандной строке:
cscript xls2csv.js
По завершении работы скрипта в output у нас появятся искомые CSV файлы, папку tmp можно почистить.
Для генерации Excel файлов на сервере я предпочитаю легкий класс ExcelWriter, написанный индусом Harish Chauhan-ом, тяжелому PEAR-овскому пакету Spreadsheet Excel Writer-у.