Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2012, 10:18   #1
hron66
Пользователь
 
Регистрация: 21.09.2012
Сообщений: 20
По умолчанию Открыть большой xlsx файл из php

Здравствуйте. Суть проблемы в следующем. Есть большой xlsx файл (~386 столбцов, ~488 строк, размер ~1,5 mb). Необходимо кодом в php считывать из него информацию и забивать её в базу данных. Найдены несколько вариантов классов и библиотек для работы с Excel, но все они нормально работают с небольшими файлами, а с большими вылетает ошибка Out of Memory. Во всех случаях интересует обращение к конкретной ячейке (строка, столбец).
1. Библиотека PHPExcel. Работает отлично, есть множество полезных функций, но очень медленная и не может обрабатывать большой файл.
2. Класс SimpleXLSX. Файл читает без ошибок, работает быстро, но с помощью него не могу никак обратиться к значению конкретной ячейки. То есть он считывает строки в один большой массив, а элементы этого большого массива также представляют собой массивы со значениями ячеек соответствующей строки. Но обратиться к значению какой нибудь конкретной ячейки не получается.
3. Класс phpExcelReader. Также прекрасно работает, быстро и открывает большие файлы, дает обращаться к конкретной ячейке файла, но тут проблема заключается в том, что он работает только исключительно с файлами xls (формат Excel 97-2003), а с файлами xlsx (формат 2007-2010) работа не поддерживается. А работать нужно именно с xlsx файлами.
Возможно кто-нибудь из Вас уже сталкивался с подобной проблемой и как-то решил её. Нужен совет, как и что использовать для работы с большим файлом, и, если не затруднит, с короткими примерами, как открыть файл для чтения и обратиться к конкретной ячейке.
P.S. Преобразование файла в csv-формат и последующая работа с ним пока не рассматривается, хотя, если никаких других вариантов не найду - придется наверно именно так и действовать.
hron66 вне форума Ответить с цитированием
Старый 21.09.2012, 10:56   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

В настройках php увеличьте лимит памяти на процесс
Cronos20 вне форума Ответить с цитированием
Старый 21.09.2012, 11:00   #3
hron66
Пользователь
 
Регистрация: 21.09.2012
Сообщений: 20
По умолчанию

Наверное вы имеете в виду параметр memory_limit в php.ini. Если речь о нем, то увеличивал, все равно PHPExcel загибается. А как по другому увеличить память, выделяемую процессу я не знаю.
hron66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
открыть большой графический файл побитно FoggySpurs Общие вопросы по программированию, компьютерный форум 71 04.06.2012 13:34
Как правильно открыть php файл? shevron PHP 2 07.08.2011 15:33
Не могу передать большой файл из формы php скрипту lemk0 PHP 1 09.02.2011 16:24
Какой программой открыть файл .xlsx ? DeKot Софт 4 14.12.2010 13:04
Открыть php файл на другом сайте gred PHP 3 21.02.2009 16:27