Экспорт данных из 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