Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 Запись данных из excel в базу mysql  [new]
frics
Member

Откуда:
Сообщений: 3
Есть данные в excel файле
id date sell buy published
1 27.05.15 0:01 4400 4450 1
2 28.05.15 5:40 4400 4430 1
3 29.05.15 7:50 4400 4430 1
и так далее 5тыс строк

Нужно ввести эти данные в готовую таблицу БД сайта, можно ввести их вручную но займет очень много времени, как можно это осуществить sql запросами?

Как вводить данные я разобрался, делаю так:
INSERT INTO `dbz2c_currency_rates_admin` ( `id` , `sell` , `buy` , `date` , `published` )
VALUES ( 1, 4400, 4450, '2015-05-15T10:34:09', 1 )

Но как все остальное сохранить в базу не понимаю, может я вообще не тем путем иду.
Подскажите пожалуйста.
12 авг 17, 20:06    [20719011]     Ответить | Цитировать Сообщить модератору
 Re: Запись данных из excel в базу mysql  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 15944
Excel - Save As ... CSV
MySQL - Load data infile
12 авг 17, 23:03    [20719188]     Ответить | Цитировать Сообщить модератору
 Re: Запись данных из excel в базу mysql  [new]
alexnews
Member

Откуда: От верблюда
Сообщений: 138
Akina,

у эксела возникают проблемы: 1 с кодировкой , 2 иногда потерей строк. По роду работы приходится экспортировать очень много файлов, советую использовать LibreOffice, очень все аккуратно переводит в csv
15 авг 17, 21:21    [20726553]     Ответить | Цитировать Сообщить модератору
 Re: Запись данных из excel в базу mysql  [new]
loisop
Member

Откуда: Орск
Сообщений: 6
frics
Есть данные в excel файле

Нужно ввести эти данные в готовую таблицу БД сайта, можно ввести их вручную но займет очень много времени, как можно это осуществить sql запросами?

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


Можно воспользоваться php (есть неплохая библиотека phpexcel).
Далее примерно так:

for ($x=0; $x<5; $x++)                                                     // Это если в книге Экселя листов больше 1 (тут 5 листов)  
    {   $xlsData = getXLS('reestrpl.xls', $x);                         //извлекаем данные из XLS
        array_walk_recursive($xlsData, function(&$value,$key){   $value=iconv('CP1251','UTF-8',$value);}); //конвертим кодировку


foreach ($xlsData as $xlsData){ 
$str = "INSERT INTO `dbz2c_currency_rates_admin` ( `id` , `sell` , `buy` , `date` , `published` )
VALUES (
 ".$xlsData[0].",      
 ".$xlsData[1].", 
 ".$xlsData[2].", 
 ".$xlsData[3].", 
 ".$xlsData[4]."
)";
mysql_query($str);
}
16 авг 17, 14:30    [20728269]     Ответить | Цитировать Сообщить модератору
 Re: Запись данных из excel в базу mysql  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 15944
alexnews
у эксела возникают проблемы: 1 с кодировкой , 2 иногда потерей строк.
При правильном экспорте таких проблем в принципе нет, иначе фирму Майкрософт за это давно бы прикопали. А через задницу можно сделать вообще что угодно.

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

К сообщению приложен файл. Размер - 73Kb
16 авг 17, 14:52    [20728409]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить