Forum Webscript.Ru

Общие => Базы данных => Тема начата: Dj Fly от 28 Декабря 2001, 01:08:51

Название: Задача: MS Excel --> MySQL
Отправлено: Dj Fly от 28 Декабря 2001, 01:08:51
Вопрос прост, но важен до ужаса... Я думаю многие об этом задумывались... Как загнать автоматом .xls-файл в базу MySQL?
Конечно можно использовать утилиты типа DBTools, но такова задача - делать это автоматом... То есть скрипт должен сжирать .xls файл и вгонять его содержимое в базу...
Название: Задача: MS Excel --> MySQL
Отправлено: vladsu от 28 Декабря 2001, 01:56:28
Hi.

Здесь описанно как выдергивать данные Perl\'ом

http://www-106.ibm.com/developerworks/linux/library/l-pexcel/

ну а как работать с MySQL\'ем знаете?
Название: Задача: MS Excel --> MySQL
Отправлено: Dj Fly от 28 Декабря 2001, 02:06:11
С MySQL-ем сравлюсь, спасибо...
А вот с перлом дела не имел до сих пор...
Придётся встретиться :-)))

Единственно что...
Я видел реализацию парсинга excel-файлов на сайте, с виду сделанном с использованием только РНР... Суппорт этого сайта ответил, что они смешивали РНР и XML... Интересно как....
Название: Задача: MS Excel --> MySQL
Отправлено: Britva от 28 Декабря 2001, 02:07:34
vladsu
интересно, не знал, кстати на форуме этот вопрос не раз поднимался.
еще как вариант, можно преобразовывать xls в csv и парсить его уже как текстовый файл (в php есть хорошая ф-я fgetcsv).
Название: Задача: MS Excel --> MySQL
Отправлено: от 28 Декабря 2001, 03:07:37
Цитировать
можно преобразовывать xls в csv

Конечно, зачем себе геморр наживать с ёкселем, тем паче, что еще модуль под версию придется подбирать или модифицировать. Создал связь xls->csv и живи спокойно
Название: Задача: MS Excel --> MySQL
Отправлено: Dj Fly от 28 Декабря 2001, 03:34:55
Да вот в том, то и дело, что когда вопрос встал ребром - "преобразование не ручками" - то первой мыслью у меня было сохранить xls как csv и делов-то... :-)))
Но потом я вспомнил, кто потом это будет админить - сайт то надо привести в причёсанное и удобоваримое для начальства состояние...
DBToolz - получше - можно провести им курс обучения, но тоже не совсем способ... Так что вот и ищу себе геморр :-)))
Название: Задача: MS Excel --> MySQL
Отправлено: Stek от 28 Декабря 2001, 05:28:50
Britva
зачем fgetcsv ?

В MySQL есть прекрасная команда load data in file
Название: Задача: MS Excel --> MySQL
Отправлено: от 28 Декабря 2001, 09:53:27
Ага, и заливать все файло в longblob, а борзюк пусть парсит ексельки сам ;)
Название: Задача: MS Excel --> MySQL
Отправлено: Britva от 28 Декабря 2001, 11:33:13
Stek
ага, просто если надо еще как то обработать данные перед запихиваением в таблицу, лучше fgetcsv.
Название: Задача: MS Excel --> MySQL
Отправлено: Dj Fly от 28 Декабря 2001, 12:37:24
Хм, а Load data in file разве парсит xls? В том то и суть, что я уже добился связями по сетке полностью структурированного - чётко табличного xls-файла, но мне нужна его копия в базе - то есть с сохранением названий полей и всех значений ячеек...
Название: Задача: MS Excel --> MySQL
Отправлено: vladsu от 28 Декабря 2001, 13:30:11
Hi.

Ну и положите файл в базу, это будет самое точное сохронение :)
Название: Задача: MS Excel --> MySQL
Отправлено: от 28 Декабря 2001, 14:05:05
Не могу понять суть проблемы. Какая разница начальству, что будет заливаться в базу. Екселька или сиэсви? Пусть себе лабает в екселе. Напиши банальный макрос, чтобы тот сохранял в формате cvs, и затем каким-либо способом доставишь это файло на сервак в базу.  
Ну нажмет он пару лишних кнопок или щелкнет мышью. Не развалится.
А дальше, в зависимости от привелегий.
Либо load data or load data local......... replase и т.д.
Название: Задача: MS Excel --> MySQL
Отправлено: Dj Fly от 28 Декабря 2001, 19:36:33
О, народ, супер...
Ведь действительно, написать макрос!!!!!
Спасибо, отличная идея...
Правда я совершенно не соображаю как писать макросы под excel но думаю разберусь... Если для кого-то это - 2 пальца - то есть легко написать прямо здесь, то буду очень благодарен, а не то придётся разбираться самому... Было бы классно, если бы макрос автоматом сохранял CSV в отдельный файл рядом с собой в той же директории...
Название: Задача: MS Excel --> MySQL
Отправлено: vladsu от 29 Декабря 2001, 01:32:08
Hi
Цитировать

Dj Fly   А вот с перлом дела не имел до сих пор...


Перл не так труден как кажется! Я не программер, но как мне кажется :) и то разобрался.

Цитировать

Britva  не знал


теперь знаете? :) У меня много хороших линков, обращайтесь!

Цитировать

Unregistered зачем себе геморр наживать с ёкселем, тем паче, что еще модуль под версию придется подбирать или модифицировать


Так давайте попросим Била не писать новых версий Excel\'а или на кой хрен придумали эти USB, жили с COM и LPT, а то бедняге Линусу пришлось модули писать :) и я не думаю, что Вы продолжали бы работать с 3DStudio под DOS\'ом по сей день, только потому, что Вам под NT или 2000 пришлось бы ставить и изучать 3DMax.

To All,

ребят я Вам конечно не советчик, но не проще ли жить по принципу как можно легче, изучить один раз Perl в место shell, sed, awk и еще бог знает чего, того же PHP :). А геморой, по моему, как раз и заключается в конвертировании из одного формата в другой и написании макросов, тем более, что, скорее всего, их необходимо будет переписывать при переходе на новый OfficeXP.
!!!Моя субъективная точка зрения!!!
Название: Задача: MS Excel --> MySQL
Отправлено: Stek от 29 Декабря 2001, 01:50:42
vladsu
На данные момент PHP как раз более перспективен для изучения , нежели PERL.
Название: Задача: MS Excel --> MySQL
Отправлено: ThE0ReTiC от 29 Декабря 2001, 01:55:40
У. перловая хреновина. Можно портировать на РНР.
Название: Задача: MS Excel --> MySQL
Отправлено: Britva от 29 Декабря 2001, 03:26:17
Вообщем-то тема была про excel->mysql а не про
Цитировать
У. перловая хреновина

уже достали споры php/perl программеров :)
Название: Задача: MS Excel --> MySQL
Отправлено: от 29 Декабря 2001, 05:18:15
Цитировать
Правда я совершенно не соображаю как писать макросы под excel

В твоем случае ничего писать самостоятельно не требуется.
Нажмешь кнопку "записать макрос" проделаешь все необходимые действия, остановишь запись..., если надо посмотришь код и подправишь.

Цитировать
Так давайте попросим Била не писать новых версий Excel\'а

Цитировать
изучить один раз Perl в место shell, sed, awk


Ну и зачем ты все это написал? Начльник этого товарища работает в екселе!! И не собирается на своем компе устанавливать ни перл, ни апач, ни даже мускул. Ко всему прочему, файл cvs будет гораздо легче, чем ёксель-моксель с таким же количеством данных раз в 50. Так что проще грузить на сервак?
Название: Задача: MS Excel --> MySQL
Отправлено: Dj Fly от 29 Декабря 2001, 09:24:37
Слава богу, боссы у меня консервативные - до сих пор сидят на 97-м оффисе, с ним легче :-)))
Название: Задача: MS Excel --> MySQL
Отправлено: ThE0ReTiC от 29 Декабря 2001, 10:41:12
2Britva :
Так я не спорю. Каждый язык под свою задачу.
А темка актуальная. Теоретически (люблю теоретические выкладки :)) делается такая вещь разбором xls файла, как бинарника в соответствии с его стандартом. Описание стандарта есть в сетке.
Название: Задача: MS Excel --> MySQL
Отправлено: Макс от 29 Декабря 2001, 16:23:39
Цитировать
А темка актуальная. Теоретически (люблю теоретические выкладки ) делается такая вещь разбором xls файла, как бинарника в соответствии с его стандартом. Описание стандарта есть в сетке.
На sourceforge.net был проэкт по написанию класса для работы с XLS (именно xls а не CSV)
Название: Задача: MS Excel --> MySQL
Отправлено: ThE0ReTiC от 29 Декабря 2001, 16:55:58
Может быть. Я туда давно уже не лазил. :(
Название: Задача: MS Excel --> MySQL
Отправлено: Dj Fly от 30 Декабря 2001, 23:19:28
Цитировать
PHP как раз более перспективен


Во-во, мне тоже так кажется...
Не берусь утверждать, но по-моему, РНР - намного помоложе перла, что уже о многом говорит...
Название: Задача: MS Excel --> MySQL
Отправлено: vladsu от 31 Декабря 2001, 02:18:47
Hi.

:hi: Всех с наступающим! :hi:
:beer:

Не буду убеждать ни кого переходить на Perl, и спорить что лучше, это дело вкуса, как в анекдоте: "Кто любит теплую водку и потных женщин? А, Петров! Вот у нас будет отпуск летом, а у все остальных зимой!" - можно смеяться!
Но вот готовый вариант, без всяких csv, хотите, используйте!

http://ftp://ftp.dn.ru/pub/MySQL/Downloads/Contrib/excel2mysql
Название: Задача: MS Excel --> MySQL
Отправлено: ThE0ReTiC от 31 Декабря 2001, 03:06:33
Какая-то нехорошая ссылочка. Машинку пытается подвесить. :(
Название: Задача: MS Excel --> MySQL
Отправлено: Dj Fly от 31 Декабря 2001, 12:19:25
Спасибо за готовый скрипт!

ВСЕХ С НОВЫМ ГОДОМ!!!!!!!!!

Проведите этот иногда грустный праздник - в этот раз весело.
Название: Задача: MS Excel --> MySQL
Отправлено: от 06 Января 2002, 21:25:51
Вообще подобная проблема стоит давно.
На Exel можно написать макрос которій сам будет перегонять данные прямо в базу MySql. Готового макроса я не видел, но неплохой пример для начала http://www.kofler.cc/mysql/mssql2mysql.html
Название: Задача: MS Excel --> MySQL
Отправлено: от 10 Января 2002, 00:09:21
Программы Access-to-MySQL, MySQL-to-Access, MySQL-to-Excel здесь http://www.convert-in.com/software.htm
Название: Задача: MS Excel --> MySQL
Отправлено: ThE0ReTiC от 10 Января 2002, 14:24:07
Меня жаба задушить столько платить. Я лучше посижу месяца два и напишу сам.
Название: Задача: MS Excel --> MySQL
Отправлено: vladsu от 10 Января 2002, 15:23:26
Hi.

Я не понимаю, Вы мазахисты?

Я Вам дал готовый и бесплатный!
Название: Задача: MS Excel --> MySQL
Отправлено: ThE0ReTiC от 10 Января 2002, 15:36:55
Мы не мазохисты. Мне гораздо интереснее написать самому. И с точки зрения изучения языка это полезнее.
Название: Задача: MS Excel --> MySQL
Отправлено: Dj Fly от 11 Января 2002, 16:57:52
Народ, да всё уже классно, я уже отдал знакомому VBA программеру на переработку макрос - который MsSQL->MySQL...

Это оказалось оптимальным решением, бо оно легче всего для конечного пользователя....
Название: Задача: MS Excel --> MySQL
Отправлено: Flash от 20 Января 2002, 03:04:12
Нашёл я скрипт: тута его листинг:
http://www.lumbroso.com/scripts/source_view.php?path=csv2sql_code/csv2sql.phps