Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизСравнивание 2-х *.xls фалов Найти похожие ветки
← →
opoloxai © (2004-04-29 17:33) [0]Добрый день.
У меня каждый месяц обновляются файлы прайсов на элементы. Файлы приходят в *.xls виде.
1) Можно ли какой-то стандартной процедурой Microsofft Exel сравнить 2 файла?
2) Может лучше импортировать данные в БД (Microsoft Access) и сравнивать 2 таблицы там?
Заранее спасибо.
← →
Sandman25+1 (2004-04-29 17:37) [1]Можно еще просто сравнить файлы как файлы ОС. diff.
← →
Курдль © (2004-04-29 17:42) [2]А в чем промблема? Чтобы враги не подсунули старый файл под видом нового? :)
← →
Sandman25+1 (2004-04-29 17:46) [3]Если нужно еще и найти различия, а не только сам факт изменения, то действительно, лучше сравнивать, используя какую-нибудь БД. Хотя можно и закачать в память (через OLE, Range), отсортировать и сравнивать "вручную".
← →
opoloxai © (2004-04-29 17:52) [4]To Курдль: цены на детали ростут, а у меня в БД они остаются старые, иногда добабляются новые детали...
← →
Курдль © (2004-04-29 17:53) [5]У меня в CVS-е есть какая-то хрень... Ага: "Araxis Merge 2001".
Он не только сравнивает, но и показывает, чем отличаются и даже может их как-то разумно слить в один! О, как!
← →
Курдль © (2004-04-29 17:53) [6]
> цены на детали ростут
Долбаная инфляция :(
← →
opoloxai © (2004-04-29 17:54) [7]"Araxis Merge 2001" - это самописная вещь или чья-то (downLoad)?
← →
Курдль © (2004-04-29 17:56) [8]Это самопал: http://www.araxis.com
← →
opoloxai © (2004-04-29 18:10) [9]В принципе, люди спросят: а почему-бы просто не воспользоваться сразу "новым" файлом.
Ответ: очень нужно знать: 1) ЧТО именно появилось нового; 2) ЧТО именно подоражало?
← →
YurikGl © (2004-04-30 00:12) [10]Я бы сделал примерно так.
TableOld - старая таблица цен
TableNew - новая таблица цен
TableRazn - таблица разниц цен
Последовательно заполняешь TableRazn как TableNew[id]-TableOld[id], где id - идентефикатор товара. Если товара нет либо в TableNew либо в TableOld, то его цену берем=0 и в TableRazn делается соответсвтующая пометка - новый товар или товар исчез.
← →
Nikolay M. © (2004-04-30 09:12) [11]
> Я бы сделал примерно так.
>
> TableOld - старая таблица цен
> TableNew - новая таблица цен
> TableRazn - таблица разниц цен
А я бы так не делал. Даже без "бы". У нас было сделано 2 поля - старая и новая цена и статус товара - новый/был в прошлом прайсе/старый (пропал в новом прайсе).
В общем случае задача довольно нетривиальная и распадается на части: закачка файла из разных источников, приведение закачанных файлов к стандартному формату (у нас был текстовик, правильнее - XML, но руки не дошли), сравнение товарных позиций из файла с предыдущими позициями в базе. Задачи идут по мере возрастания сложности реализации. Еще добавлю, что без ручного труда тут, увы, не обойтись :(
← →
YurikGl © (2004-04-30 10:25) [12]Nikolay M. © (30.04.04 09:12) [11]
Согласен, так лучше будет.
З.Ы. Фактически это - нормализация [10]
← →
Курдль © (2004-04-30 10:33) [13]А у нас все просто в одном проекте реализовано: приходит прайс - заливается в базу (распадается таблиц на 5 - товары, поставщики, документы и т.п.). А потом уж делай с ним, что хошь! Хошь - сравнивай, хошь - цену выбирай из последнего. Тока вот прайсы у всех поставщиков разные :( От Ёкселя с картинками, до PDF-а, из которого хрен чё вытянешь! Вот задача импорта - самая геморройная. А вовсе не сравнения!
← →
Nikolay M. © (2004-04-30 12:16) [14]
> От Ёкселя с картинками, до PDF-а, из которого хрен чё вытянешь!
> Вот задача импорта - самая геморройная. А вовсе не сравнения!
Ты ошибаешься. У нас порядка 500 совершенно разных прайсов прекрасно обрабатываются на автомате. Задача эта чисто техническая + иногда немного ручного труда.
А вот сопоставить два таких наименования:
Monitor Sony Flat Trinitron 17", TCO"99, 6F910-43
и
Монитор Сони, плоский экран, 1280х1024, стандарт тсо99, модель -43
- задача, которая тянет если не на докторскую, то уж точно на дисер. У меня эта задача в упрощенном виде была в дипломе. В общем случае, имхо, нерешаемо вообще.
← →
Курдль © (2004-04-30 13:12) [15]А в чем я ошибаюсь? Ведь правильно идентифицировать Monitor Sony Flat Trinitron 17", TCO"99, 6F910-43, как Монитор Сони, плоский экран, 1280х1024, стандарт тсо99, модель -43 - это и есть задача импорта. Мы говорим об одном и том же.
Кроме того, в нашем случае таблица товаров имела сложную иерархическую структуру и надо было думать, в какую ветвь упихать "неопознанный товар".
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.059 c