Подскажите парсер из Excel в MySQL

12
Samail
На сайте с 10.05.2007
Offline
366
3355

Мне нужен парсер из Excel в MySQL. Причем он должен не только копировать данные, но и заменять некоторые из них. Т.е. нужно, чтоб была возможность настроить для некоторых полей автозамену, на пример если в поле в Excel указано П в соответствующее в MySQL отправляется Понедельник, если В то Вторник. (для каждого поля свои настройки).

В общем, есть каталог товаров в Excel и нужно регулярно импортировать его в уже работающий каталог на сайте, без сокращений. Основную обработку можно проводить на локальном компьютере.

Существует что-то подобное?

malls
На сайте с 08.08.2005
Offline
255
#1

А кто мешает макрос написать? Учитывая специфичные замены тут все равно простыми методами не обойтись.

Alex Klo
На сайте с 15.06.2006
Offline
304
#2
Samail:
Существует что-то подобное?

подобного существовать не может.

Слишком частная задача.

Написать простую прогу для этого - 8 рабочих часов максимум...

Лучше не макрос, а именно прогу.... т.к. куча условий....

Проверка и мониторинг позиций сайта ( http://www.topvisor.ru/?inv=1520 ) Продвигаю сайты http://climat-nw.ru/conditioner-installation/ http://www.aircom-spb.ru/service/montaj/
Maxouni
На сайте с 18.11.2008
Offline
119
#3

Закажите у PHP - шников, в PHP есть функции для работы с csv форматом, так что написать такой парсер и закинуть в базу - дело не очень большого времени. Я баксов за 10 -15 напишу)

Создание, продвижение, поддержка сайтов и приложений.
malls
На сайте с 08.08.2005
Offline
255
#4
Alex Klo:
Лучше не макрос, а именно прогу.... т.к. куча условий....

:) А макрос это что по Вашему? "Роман в стихах"?

Maxouni:
Закажите у PHP - шников, в PHP есть функции для работы с csv форматом

Ну конечно, потом надо будет "всего навсего" объяснить менагеру, как экспортнуть данные из экселя в csv, потом как это добро закинуть в PHP и т.д.

И все это вместо того чтобы просто в экселе кнопочку нажать.

Очень логично!

Для любых практически задач существуют оптимальные для их выполнения методы.

В данном случае это Visual.Basic + сценарии Excel.

Кстати ТС:

Samail:
если в поле в Excel указано П в соответствующее в MySQL отправляется Понедельник, если В то Вторник.

Хранить в БД в отдельном поле список "понедельников" и "вторников" - это значит издеваться над здравым смыслом. Хранить надо 1,2,3,...,7. В худшем случае (если боитесь забыть) нужно сделать отдельную таблицу соответствий.

[Удален]
#5

Примерно так:


<?php
include_once("db_fns.php");
function CSV2Array($content, $delim = ';', $encl = '"', $optional = 1)
{
$reg = '/(('.$encl.')'.($optional?'?(?(2)':'(').
'[^'.$encl.']*'.$encl.'|[^'. $delim.'\r\n]*))('.$delim.'|\r\n)/smi';

preg_match_all($reg, $content, $treffer);
$linecount = 0;

for ($i = 0; $i<=count($treffer[3]);$i++)
{
$liste[$linecount][] = $treffer[1][$i];
if ($treffer[3][$i] != $delim)
$linecount++;
}
return $liste;
}

// usage for example:
$content = join('',file('test.csv'));
$liste = CSV2Array($content);
//print_r($liste);
$conn = db_connect();
mysql_select_db("sp_product");
$query = "INSERT INTO sp_product(`productid`, `catmainid`, `catid`, `brandid`, `sellersid`, `prodname`, 'descsmall', 'descfull', 'price', 'picsmall', 'picbig')
VALUES('', '".$liste[0]."', '".$liste[1]."', '".$liste[2]."', '".$liste[3]."', '".$liste[4]."', '".$liste[5]."', '".$liste[6]."', '".$liste[7]."', '".$liste[8]."', '".$liste[9]."')";
$result = mysql_query($query) or die("Invalid query: " . mysql_error().__LINE__.__FILE__);

?>

//Код не мой, просто заюзал поиск )

Prior
На сайте с 03.03.2008
Offline
184
#6

ТС, Php_Excel_Reader можете попробовать.

Ответы на вопрос - https://answers.net.pl
T.R.O.N
На сайте с 18.05.2004
Offline
314
#7
Samail:
Мне нужен парсер из Excel в MySQL

Пишиш макрос под ексель. Достаточно просто и быстро. Экспорт делаеш как нравится, или сразу на мускульный сервер или в файл.

T.R.O.N добавил 29.04.2009 в 13:54

malls, Как обычно прав, а ща еще и чуть опередил

T.R.O.N добавил 29.04.2009 в 13:56

malls:
А макрос это что по Вашему? "Роман в стихах"?

просто VBA перестали ценить, а ведь эффективней чем на нем не удается что-то делать под мс-офис

PS Ща начнуть предлагать фреймворковых монстров

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
[Удален]
#8
Maxouni:
Закажите у PHP - шников, в PHP есть функции для работы с csv форматом, так что написать такой парсер и закинуть в базу - дело не очень большого времени. Я баксов за 10 -15 напишу)

При чем тут CSV? Формат CSV

row11,row12,\n row21, row22 и т.д.
а у Excel какой формат? Напишите за 15$ полноценный скрипт для работы с Excel? Тогда пожалуй даже я закажу, но он должен работать не с CSV, а именно с файлами .xls и .xlsx

Беретесь? :)

[Удален]
#9
So1:
При чем тут CSV? Формат CSV
row11,row12,\n row21, row22 и т.д.
а у Excel какой формат? Напишите за 15$ полноценный скрипт для работы с Excel? Тогда пожалуй даже я закажу, но он должен работать не с CSV, а именно с файлами .xls и .xlsx
Беретесь? :)

Excell имеет такую замечательную фишку, как "Файл->Сохранить как...->Тип файла csv". В этом случае все рассчитываемые поля сохраняются как константы (рассчитываются). Разумеется всякие графики-диаграммы исчезают и вообще с этим форматом потом проще работать.

Т.о. если есть xls, то получить удобочитаемый csv несложно.

[Удален]
#10
nikitian:
Excell имеет такую замечательную фишку, как "Файл->Сохранить как...->Тип файла csv". В этом случае все рассчитываемые поля сохраняются как константы (рассчитываются). Разумеется всякие графики-диаграммы исчезают и вообще с этим форматом потом проще работать.
Т.о. если есть xls, то получить удобочитаемый csv несложно.

С чего вы взяли, что я не знаю, что Excel можно сохранить как CSV? Вы PHP научите сохранять его как CSV, тогда претензий будет меньше.

Например, у меня миллион xls файлов (откуда вы знаете, что мне нужно только с одним файлом работать?) - мне их неделю перегонять в CSV? А так я человеку сильно уверенному в своих знаниях заплачу всего 15$ и получу скрипт. который я сам бы писал по меньшей мере пару дней. Я готов это сделать потому что свои пару рабочих дней я оцениваю как минимум в 100$ и мне будет весьма удобно воспользоваться услугами программиста для решения этой задачи.

А еще у меня к тому же 500 файлов в Excel 2007 (.xlsx)... Поэтому скрипт должен работать и с теми и с теми... И я с огромной радостью отдам 15$ за полноценный класс для работы с Экселем. Если еще и архивировать эксель файлы сможет - вообще супер будет просто, хотя уж что-что, а это я и сам (так уж и быть) допилю.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий