Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
4-1080633000
Владимир Бирюков
2004-03-30 11:50
2004.05.23
Атрибут "Поверх всех" и всплывающее окно принтера


1-1083869605
Реактор
2004-05-06 22:53
2004.05.23
Выход из модального окна


1-1083765570
Sergo742
2004-05-05 17:59
2004.05.23
Некорректное удаление компонента


14-1083517914
Daniel
2004-05-02 21:11
2004.05.23
Интересный кусок в кодах VCL


4-1081237395
baromir
2004-04-06 11:43
2004.05.23
Выполняется только первый файл, который я создаю, что делать???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский