Экспорт данных из 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
 
английский язык для начинающих
Ашманов Египет Москва РХТУ Россия США Снежинск Таиланд Тушино Урал Челябинская область Яндекс алкоголь английский язык баги база данных безопасность бизнес блоги взлом видео выставка выходные горные лыжи дайвинг дауншифтинг допинг идиотизм инвентарь интернет книги кэширование мозг море музей ноутбук образование оптимизация отдых отпуск пароль плагин пора сваливать программирование программисты путешествия работа работоспособность радиация реклама самогоноварение собеседование социальные сети спам стартап статистика страны тайм-менеджмент техника учеба фантастика фото фриланс хакер экология электронные деньги юмор Ajax CMS DbSimple DDOS email FireFox Google honda htaccess HTML javascript jQuery life md5 MySQL PHP SEO soft SQL vkontakte Web web 2.0 wordpress