PDA

Просмотр полной версии : методы импортирования exel файла в базу


Delt@DIM
21.06.2005, 12:00
Доброго Дня!
Уже давно мучаюсь одной проблемой. Все никак не могу импортировать exel-овский файл в БД MySQL!
Чего уже только не пробовал..:
Самое рациональное, это сохранить в файл csv.
Прайс выглядит примерно так:

Артикул 1;Имя 1;Описание 1; ;*
Артикул 2;Имя 2;Описание 2;Цена 2;
Артикул 3;Имя 3;Описание 3;Цена 3;
Артикул 4;Имя 4;Описание 4; ;**
Артикул 5;Имя 5;Описание 5;Цена 5;
Артикул 6;Имя 6;Описание 6; ;**
Артикул 7;Имя 7;Описание 7;Цена 7;
Артикул 8;Имя 8;Описание 8; ;***
Артикул 9;Имя 9;Описание 9;Цена 9;
Артикул 10;Имя 10;Описание 10; ;*

Где * обозначаются каталоги, а их количество обозначают уровенть каталога (** - второй уровень)
Но вот проблема: В разделе "Описание" возможно присутсвие таких символов как ";" или символа новой

строки.
Из-за этого распадается весь csv файл.
В общем, с возможными лишними ";" я вроде уже разобрался... Но как решить проблему если присутсвуют

символы новой строки?

Подскажите, какие есть еще методы импортирования exel файла в базу...

Constantine
21.06.2005, 16:25
Попробуй сделать последнюю колонку со строковым идентификатором, который точно не встречается в ячейках и дели csv на записи уже по нему...

-MS-
23.06.2005, 00:40
еще можно таблицу экселевскую в xml сохранить... и потом xml документ при помощи xml_parser выделить все что надо... я скрипт писал по перегонке в базу генерирование html... может не самый просто способ, но работает
посмотри... может поможет

Constantine
23.06.2005, 10:57
А что у тебя этот запрос делает с пустой таблицей, ни как в толк не возьму...$query='TRUNCATE `project_razdel`';
$result=mysql_query($query);

Самурай
23.06.2005, 13:15
1) http://www.php.net/fgetcsv !НО! Великий Зеленый Слон, говрил что она с багами, с какими не помню.

посему можно сделать file а потом прегом разбить... темболье что все просто
ртикул 10;Имя 10;Описание 10; ;*

а мона сразу всев прег_матч_олл

лень с прег метчем возится ? explode

2) чисто с екселем.. только я не помну там читать или писать
http://www.flasher.ru/forum/showthread.php?t=65527
но есть класс и дял того и для того....

Nirva
23.06.2005, 14:26
Самурай, что-то я не понял про прег_матч и лень возится, если есть explode, о котором ты сам и написал. зачем там прег_матч?

juggy
23.06.2005, 14:29
ну прегмач-олл быстрее - шагов меньше.

-MS-
23.06.2005, 14:58
там таблица не пустая, все дело в том что xml документ загружался на хост и после каждой загрузки таблица переписывалась

nagash
23.06.2005, 16:22
juggy - если меньше шагов, это не значит что быстрее...
естественно строковые функции намного быстрее прегов работают...

P@Sol
28.06.2005, 13:44
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4843&page=1

energy@work
12.07.2005, 18:17
a kak naschet takogo:
http://sourceforge.net/projects/phpexcelreader/