Як імпортувати з Excel у Парадокс

Коротше така фішка. Мені треба перевести excel базу в db. Як зробити це краще. Коли намагаюся з Excel зберегти як Dbase, то там херня з базою відбувається. Взагалі за допомогою делфі як мені це реалізувати. Плиззз чуваки допомагайте!

Якщо тобі потрібно 1 раз перенести базу, я б на твоєму місці скористався Access (97 і вище). 1. Імпортував Excel – > Access майстром (Не лінк а саме імпорт). 2. Коригуєш типи, розмір полів. Може десь і дані доведеться коригувати. Можна перевірити умови на дані. 3. Експортуєш таблицю куди завгодно благо індексів у тебе немає. (Dbase всіх видів, Paradox всіх видів).. Отримуєш якісну .db Ну а потім на Delphi під неї пишеш програму обробки.

Ну а якщо тобі потрібно постійно переносити – це дуже нудно, я б із цим взагалі не зв'язувався.

> постійно переносити - це дуже нудно

Завжди цим займаюся (перенесенням з одного типу бази в інший), і нічого не нудно пишеш програму для перенесення, коли потрібно запускаєш, все.

Я мав на увазі - щоразу з Excel-а. Про перенесення типу DBF-DB, Access-DBF, DBF-SQL Server та ін. проблем немає.

А якщо щоразу з Excelу. це там перетворення типів, обмеження на операції з таблицею. Адже Excel зазвичай користуються люди, які про БД мало що знають і розуміють. Я наприклад одного свого користувача не можу змусити не залишати порожній рядок на початку робочого листа - він туди все одно пише. Або заголовки таблиці робить багаторядковими. Такі речі не проканюють, якщо пишеш автоматичний імпорт із Excel. Та там багато чого.

Ну коли людина в Excel вбиває те так, у мене лежить база набита в Excel 5 різними людьми, у формі дорожніх листів так мало того, що всі по-різному представляютьяк треба забивати так і одна і та сама людина сьогодні робить по одному завтра по іншому, ніякої формалізації. :-(( так і лежить, загальна думка перекладу інакше як "ручками" не підлягає. але чого відразу про сумне? є інші ситуації коли приходять звіти вивантажені іншими програмами (1С) в Excel, тут все класно з різних місць і все в одному стандарті.

"є інші ситуації, коли приходять звіти вивантажені іншими програмами (1С) в Excel, тут все класно з різних місць і все в одному стандарті" - і робочі листи захищені від змін. ;))

Якщо тобі потрібно переносити постійно, то нудотна ця справа - краще не зв'язуватися. Або наполягти остаточно повної формалізації одержуваної інформації.

Стояло в мене таке завдання рік півтора тому. Потрібно було отримувати прайси цін з однієї організації та заносити до БД замовника. Реалізував приблизно так: 1. У вікні стояв компонент TOleContainer, у ньому відкривався Екселевський файл. 2. Користувач виділяв потрібні для перенесення стовпці (або регіон осередків). 3. Поруч із компонентом стояв список відповідності якомусь стовпцю, яке поле в бд відповідало. У принципі, його можна було налаштувати лише один раз. Але оскільки екселевський файл міг змінюватися, він також створювався програмою, а потім змінювався людьми, список відповідності був потрібен. 4. Найголовніше. Обов'язково в екселевському файлі, що надсилається, повинна бути колонка(і)-ідентифікатор (первинний ключ) по якому можна однозначно визначити рядок. Цей ідентифікатор доводилося зберігати в бд замовника, щоб однозначно визначити, у якому товарі відбулися зміни цін чи з'явився новий товар зі своїми цінами.

Загалом геморой був повний. Система з горем навпіл навіть не багатопропрацювала, поки я не вийшов на прямий контакт з програмістом, який обслуговує програму в організації, що надсилає прайс і для цього замовника почала приходити база в Парадоксі. Проблем значно поменшало :) І тобі раджу пошукати такий підхід.