Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Внесение изменений в MySQL-базу с помощью Excel-файла

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Old Rocker



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Идея:
Есть база данных MySQL и содержит 2 столбца A и B, ну а там строки, строки, строки…
Нужно внести изменения в столбец B (по всем строкам свое значение).
 
Как хочется:
Логично у себя на компьютере создать Exell файл с двумя столбцами и сделать там все изменения, потом зайти на страничку сайта (админ страничку), там выбрать этот файл у себя на диске и нажать кнопку «Пошел!».
И информация из этого файла заменит всю информацию в нужной таблице базы данных.
 
Вопрос:
Как можно реализовать? Может существуют уже готовые скрипты?  
 
 
P.S. Очень нужно сделать это на PHP!  





Исправил название для лучшей искабельности — Svarga.

Всего записей: 451 | Зарегистр. 24-07-2001 | Отправлено: 15:57 18-07-2003 | Исправлено: Svarga, 07:05 24-07-2003
Chumka

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ох.....  я в непонятках. Каким раком? Чет я не знаю чтоб пхп работал с экзель.
Думаю можно, если из экзель переводить в текстовый формат, а из него уж в БД как нефиг делать

Всего записей: 177 | Зарегистр. 07-05-2003 | Отправлено: 16:03 18-07-2003
Old Rocker



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А cgi?

Всего записей: 451 | Зарегистр. 24-07-2001 | Отправлено: 16:35 18-07-2003
Chumka

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дык Cgi что именно Perl, C ? Там тоже такой формат я не видел. Хотя интересно, может кто знает пусть скажет

Всего записей: 177 | Зарегистр. 07-05-2003 | Отправлено: 21:07 18-07-2003
woffer

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Old Rocker
Chumka
где-то в форуме обсуждалась эта тема. Поищите  

Всего записей: 935 | Зарегистр. 11-10-2002 | Отправлено: 22:08 18-07-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IMHO проще из Excell переводить файл в CSV (comma separated что то там.. вообщем данные разделены запятыми или табуляцией..) и потом с ним работать. Так я делал в свое время - работать с Excell оказалось неудобно.. А тема такая действительно была..
http://forum.ru-board.com/forums.cgi?action=filter&forum=31&filterby=topictitle&word=excel

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:12 18-07-2003 | Исправлено: Cheery, 22:12 18-07-2003
Old Rocker



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
IMHO проще из Excell переводить файл в CSV (comma separated что то там.. вообщем данные разделены запятыми или табуляцией..) и потом с ним работать. Так я делал в свое время - работать с Excell оказалось неудобно.. А тема такая действительно была..  

Нет, точно я встречал скрипт который работал на .xls + CGI.
Может кто встречал?

Всего записей: 451 | Зарегистр. 24-07-2001 | Отправлено: 13:01 21-07-2003
Kokoc

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
К Perl есть модуль Spreadsheet:ParseExcel и пр. - см. на www.cpan.org
Под Windows данные можно достать через OLE (с ActivePerl) - ставить ничего не придется.
У меня, правда, обратная задача была - взять данные и вставить в Excel.
 
Пример (из описания модуля Win32::OLE):

Код:
 
use Win32::OLE;
 
my $ex;
eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')};
die "Excel not installed" if $@;
unless (defined $ex) {
    $ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
            or die "Oops, cannot start Excel";
}
$workbook = $ex->Workbooks->Open($out_dir.$xls_file);
foreach $cell_no (sort keys %cells)
{
  # в %cells сидят данные, которые надо вставить в таблицу
   # в виде <N ячейки>,<данные>; напр. %cells=("A1","Hello");
  $worksheet->Range($cell_no)->{Value} = $cells{$cell_no};
}
$workbook->SaveAs($out_dir.$out_file);
undef $workbook;
undef $ex;
 
 

 
Аналогично можно приделать и чтение. Потом можно прикрутить DBI/DBD с Mysql.
Т.е. запускаешь на локалхосте, а тот коннектится к удаленному MySQL и грузит туда данные.

Всего записей: 793 | Зарегистр. 06-06-2002 | Отправлено: 16:38 21-07-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kokoc

Цитата:
eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')};  

Это неудобно.. на сервере запускается локально Excel.. жрет ресурсы.. и не всегда нормально выгружается из памяти..

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:03 21-07-2003
BookMaster



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
use DBI;
 
# аплоадим xls файл на сервер  
/* код аплоада */
 
 
$hDb = DBI->connect("DBI:Excel:file=test.xls")
        or die "Cannot connect: " . $DBI::errstr;
 
# описываем что надо в таблицах делать  
/* sql */
 
 
    $hSt->execute() or die "Cannot execute: " . $hSt->errstr();
    $hSt->finish();
    $hDb->disconnect();

Всего записей: 159 | Зарегистр. 13-10-2002 | Отправлено: 16:30 23-07-2003
HiDDeN

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
IMHO проще из Excell переводить файл в CSV (comma separated что то там.. вообщем данные разделены запятыми или табуляцией..) и потом с ним работать. Так я делал в свое время - работать с Excell оказалось неудобно.. А тема такая действительно была..  

 
А если у меня картинки там ? как тогда ?

Всего записей: 1 | Зарегистр. 26-03-2004 | Отправлено: 10:53 30-03-2004
KVCH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
я даже для перла для ппм сделал пакет. устанавливаешь - и работаешь...

----------
FreeBSD лучше Linux !

Всего записей: 1741 | Зарегистр. 03-03-2002 | Отправлено: 12:26 30-03-2004
Kristaliar



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
На днях делал:
 
Как и говорил Cheery, лист сохраняешь как .csv, там разделители <;>. Открываешь полученный файл блокнотом или textpad, в конце списка будет куча пустых строк или мусор всякий, убираешь это на фиг.
 
Грузишь консолью базу, делаешь:  
mysql>LOAD DATA INFILE "file.txt" INTO TABLE db_name.tab_name;
 
Можно и лучше! делать через phpmyadmin, там опций побольше.

Всего записей: 835 | Зарегистр. 29-08-2002 | Отправлено: 13:10 31-03-2004 | Исправлено: Kristaliar, 13:11 31-03-2004
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Внесение изменений в MySQL-базу с помощью Excel-файла


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru