Экспорт данных из Excel с помощью PHP

Недавно мне понадобилось перенести информацию из 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

Теги: excel, PHP
#1

Как я понял это именно для старых xls бинарных версий от 2000-2003 гг, а не для xml'ных версий?

Артём Курапов, 6.08.2009 - 21:07
#2

да, для 2007 офиса проще конвертировать документ в 2003 и уже с ним работать

admin, 6.08.2009 - 21:18
#3

А есть аналогичный класс для записи?

Дмитрий, 12.08.2009 - 15:59
#4

Да, можно. Но мне не доводилось их использовать.

1) Spreadsheet_Excel_Writer из PEAR
2) или набор библиотек PHPExcel (требуется версия PHP 5.2 или выше, с установленными библиотеками Zip, XML и GD2)

admin, 12.08.2009 - 16:06
#5

Я только делал одну вещь - на ПХП в Винде через ОЛЕ(потом в екзжешнник компилилось)....
ИЗВРАТ ЕЩЕ ТОТ С МАТАМИ!!!
А вот действительно - запись. Есть варианты.
А цвета? ;) Была та трабла... :(

BITCreator, 26.08.2009 - 21:25
#6

Про цвета. Еммм... Там как была суть всего ТЗ.
Ну вот хоть хоть ХРЕСНИ!!!! А в цветах... :(

BITCreator, 26.08.2009 - 21:31
#7

Для записи с цветами, могу порекомендовать как выход следущее:

1. PHP скрипт сводит всю инфу в простую таблицу и пишет в *.htm файл.

2. Этот файл запросто открывается в exel 2007 и там все цветет как надо.

Примечание: тег bg color влияет на цвет
тег border задает толщину рамок. С остальным поэксперементируйте.

makc, 25.03.2010 - 22:48
#8

Спасибо!!! Вы мне очень помогли! Как раз то что нужно было!

Людмила, 5.05.2010 - 14:35
#9

Предположим, в ячейке х:y лежит картинка.
Как её вынуть и записать в файл?

serge che, 27.08.2010 - 20:53
#10

Большое спасибо за класс!
Очень помогло!

Виталий, 20.12.2010 - 00:20
#11

Замечательно, считывает, спасибо!
Может быть Вы еще подскажите, как сделать, чтобы в вебе отображалось красиво, а то у меня весь текст слепился в кучу. :)

Эльвира, 25.03.2011 - 19:35
#12

Отлично! Все круто работает. Спасибо за скрипт!

Олег, 10.08.2011 - 16:54
#13

ребят, скажите, а можно ли в пути файла ($Excel->read('filename.xls'); // открываем файл) - задать путь файла, который лежит в интернете, а не на сервере?

Станислав, 6.09.2012 - 15:18
Оставить комментарий