Недавно мне понадобилось перенести информацию из excel-файла в базу данных. Для этого я использовал класс Spreadsheet_Excel_Reader. Это php-класс, который создан для чтения excel-документов. Простой пример ниже иллюстрирует работу класса.
<?php require_once ('/excel/reader.php'); // подключаем класс $Excel = new Spreadsheet_Excel_Reader(); // создаем объект $Excel->setOutputEncoding('cp1251'); // устанавливаем кодировку $Excel->read('filename.xls'); // открываем файл $count = $Excel->sheets[0]['numRows']; // узнаем количество строк в 1 листе // с помощью цикла выводим все ячейки for ($rowNum = 1; $rowNum <= $count; $rowNum++) { echo $Excel->sheets[0]['cells'][$rowNum][1]; // 1 столбец echo $Excel->sheets[0]['cells'][$rowNum][2]; // 2 столбец echo $Excel->sheets[0]['cells'][$rowNum][3]; // 3 столбец } ?>
Например, $Excel->sheets[0]['cells'][2][1] обращается к ячейке, которая находится в первом листе, 2 строка, 1 столбец. Если ваши данные находятся в 3 листе нужно писать $Excel->sheets[2] (нумерация начинается с нуля).
Скачать класс Spreadsheet_Excel_Reader
6.08.2009
Как я понял это именно для старых xls бинарных версий от 2000-2003 гг, а не для xml'ных версий?
да, для 2007 офиса проще конвертировать документ в 2003 и уже с ним работать
А есть аналогичный класс для записи?
Да, можно. Но мне не доводилось их использовать.
1) Spreadsheet_Excel_Writer из PEAR
2) или набор библиотек PHPExcel (требуется версия PHP 5.2 или выше, с установленными библиотеками Zip, XML и GD2)
Я только делал одну вещь - на ПХП в Винде через ОЛЕ(потом в екзжешнник компилилось)....
ИЗВРАТ ЕЩЕ ТОТ С МАТАМИ!!!
А вот действительно - запись. Есть варианты.
А цвета? ;) Была та трабла... :(
Про цвета. Еммм... Там как была суть всего ТЗ.
Ну вот хоть хоть ХРЕСНИ!!!! А в цветах... :(
Для записи с цветами, могу порекомендовать как выход следущее:
1. PHP скрипт сводит всю инфу в простую таблицу и пишет в *.htm файл.
2. Этот файл запросто открывается в exel 2007 и там все цветет как надо.
Примечание: тег bg color влияет на цвет
тег border задает толщину рамок. С остальным поэксперементируйте.
Спасибо!!! Вы мне очень помогли! Как раз то что нужно было!
Предположим, в ячейке х:y лежит картинка.
Как её вынуть и записать в файл?
Большое спасибо за класс!
Очень помогло!
Замечательно, считывает, спасибо!
Может быть Вы еще подскажите, как сделать, чтобы в вебе отображалось красиво, а то у меня весь текст слепился в кучу. :)
Отлично! Все круто работает. Спасибо за скрипт!
ребят, скажите, а можно ли в пути файла ($Excel->read('filename.xls'); // открываем файл) - задать путь файла, который лежит в интернете, а не на сервере?