Вопрос № 42888: Здравствуйте, уважаемые эксперты. Пишу продолжение к моему вопросу №42618. Теперь задача несколько усложнилась. Моя таблица состоит из 11-и столбцов с разным содержанием (имена, даты и т.п.). Все данные хранятся в виде электронной таблицы Microsoft E...
Вопрос № 42.888
Здравствуйте, уважаемые эксперты. Пишу продолжение к моему вопросу №42618. Теперь задача несколько усложнилась. Моя таблица состоит из 11-и столбцов с разным содержанием (имена, даты и т.п.). Все данные хранятся в виде электронной таблицы Microsoft Excel. Подскажите, пожайлуста, как загнать содержимое этой таблицы в массив для последующей обработки (вывода, сортировки и т.д.). Функция file подходит только для небольших файлов. Функция fgetcsv тоже, думаю, не поможет. Что Вы посоветуете?
Отправлен: 12.05.2006, 20:27
Вопрос задал: Cool_guy (статус: 3-ий класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Константин
Здравствуйте, Cool_guy!
Отвечаю на оба вопроса. Есть два варианта решения. Первый. Пишешь и читаешь не .xls, а .csv.
Второй, более правильный. Идешь на pear.php.net или phpcalsses.org и ищешь там по запросу excel.
Для записи есть класс spreadsheet_excel_writer или как-то так. Для чтения, тоже пользовался, но названия не помню. Вообще-то это не проблема. С phpclasses.org можно столько всего интересного наскачивать.... Кроме этого, если хостинг windows, то можно юзать ком-технологию. Насчет этого - на php.net.
Я пользовался классами с http://www.phpclasses.org/
Там поищи, уверен что найдешь.
--------- Лучше сделать и жалеть, чем жалеть о том что не сделал
Ответ отправил: Константин (статус: 4-ый класс)
Ответ отправлен: 12.05.2006, 21:41 Оценка за ответ: 5 Комментарий оценки: Спасибо, попробую
Отвечает: Cybernetic_Creature
Здравствуйте, Cool_guy!
в Excel-e есть возможность сохранения файлов как CSV.вы можете так сделать и читать.
есть еще один вариант.мой, но не очень то и хороший.
вообщем я так делаю
беру свободную ячейку (L1) и пишу туда
=СЦЕПИТЬ("insert into mytable values(",A1,",",B1,",",C1,",",D1,",",E1,",",F1,",",G1,",",H1,",",I1,",",J1,",",K1,");")
(если есть строки то их надо писать с одинарнымикавычками. например так-,",'",H1,"',",)
а потом методом перетаскивания применяю это ко всем строкам.и копирую нужный столбец в SQL Editor, и нажимаю F9(выполнить).
метод конечно не очень хороший, но довольно быстрый когда нет других возможностей.
а хотя есть еще одна возможность.
можно сохранить в excel-е в формате dbf. потом datapump-ом кидаете этот файл в БД.но этот метод выходит за пределы программирования в РНР.
в кратце скажу что нужна установленная BDE (Borland Database Engine), MyODBC (если вы работаете с МуСКЛ-ом.) или же другая ПО для коннекта к базе через ODBC, DATAPUMP (программа для перебрасывания таблиц одного формата в другой)
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 13.05.2006, 09:46
Отвечает: Santana
Здравствуйте, Cool_guy!
Попробуй COM-технологии (см. http://ua2.php.net/ru/com). Правда у меня возникали проблемы. Во первых сервер грузил нещадно, после 5-10 процессов сервер сдыхал. Во вторых процесс выгружается через раз, приходилось ручками пришибать. Если получится поделись, буду обязан :)
Гипотетически могу предложить конвертить таблицу Microsoft Excel в CSV и с ним работать.
Исчо есть формат XML с PHP работает аж бегом. Но он у меня пока в проекции.
Ответ отправил: Santana (статус: 2-ой класс)
Ответ отправлен: 15.05.2006, 11:47