Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Сравнивание 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.048 c
7-1082112699
nv_
2004-04-16 14:51
2004.05.23
Как заставить окно показаться?


1-1084204215
dnsokol
2004-05-10 19:50
2004.05.23
Менюшка элементов aka Outlook


1-1084119376
danver
2004-05-09 20:16
2004.05.23
String и утечка памяти


3-1083146032
samovar inc.
2004-04-28 13:53
2004.05.23
значение вставить в поле базы


1-1083833388
NAlexey
2004-05-06 12:49
2004.05.23
Как преобразовать число с плавающей точкой в ненаучный формат