Автор Тема: Импорт на данни в OpenOffice Base  (Прочетена 6398 пъти)

George Andonov

  • Напреднали
  • *****
  • Публикации: 261
  • Distribution: Ubuntu
    • Профил
Здравейте,

Въпросът ми е, какви са начините за импорт на данни от Excell файл (*.XLS) в OpenOffice Base?
Допълнителна особеност е, че данните в Excell са в една таблица, а в OpenOffice Base таблиците са няколко (има Primary key, релации и т.н.).

- Една идея, която ми хрумна, е с SQL заявка. Но не знам дали въобще мога да направя: Select * From Excell_File?
- Друго което би свършило работа е нещо като SQL Loader(в Oracle се казва така). Това е парсер, който анализила някакви данни и update-ва дадена база с тях. Но има ли въобще такова животно за ОО?
- Трети вариант е Excell-а да се свърже с базата и да "насипва" данни.

С две думи: Зациклих на идейна основа. '<img'>
Дайте някакви насоки - Как да подходя? Какво и къде да чета.

П.П. Това ще бъде еднократна миграция. Така, че не е задължително процедурата да е много автоматизирана или user-friendly.
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #1 -: Dec 01, 2005, 16:14 »
значи не съм правил такова нещо но ми хрумват на първо време 3 вариянта:

1. ако не се лъжа имаше ODBC драйвер за Excel (някъде на microsoft.com трябва да го търсиш), с който можеш да пускаш sql върху excel-ски spreadsheet (нали така се водеха). не го препоръчвам, щото ми се струва много омотано - да го инсталираш, да видиш какъв е синтаксиса на SELECT-ите за ексела...

2. ако OOBase поддържа импорт от CSV това ти е решението - от excel-а експортираш CSV и го импортваш в OOBase

3. ако OOBase има възможност да взима данни от OOCalc - импортваш си excel-скя файл в Calc и оттатм в Base

за първия вариянт аз както си го представям ще трябва да има програма, която прави връзка към excel-ския файл през ODBC и едновременно има връзка с базата на OOBase, което ми се струва доста играчка. другия вариант, да се направи програмка, която селектва данните от excel-а и генерира INSERT-и за OOBase, което в момента, в който го написах генерира и 4ти вариянт, а именно - някакъв скрипт (на perl ми се върти), който чете експортирания от excel CSV файл и генерира INSERT statement-и на базата на него.

после пускаш INSERT-ите да налеят информацията в OOBase и си готов. комай посленото най-смислено ми звучи.

поздрави и ако достигнеш успех кажи как точно си процедирал
Активен

George Andonov

  • Напреднали
  • *****
  • Публикации: 261
  • Distribution: Ubuntu
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #2 -: Dec 01, 2005, 16:30 »
Най ми харесва третата ти идея. Данните в OO Calc, и от там в OO Base.

Проблемът ми е, че неможах да намеря начин да прехвърля данни в OOBase от OOCalc '<img'>

Явно нещо ослепявам 'B)' или оглупявам ':huh:'
Абе не е на добре.
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #3 -: Dec 01, 2005, 16:46 »
ми гледай, аз идея си нямам дали изобщо може от oocalc в oobase да се прехвърлят данни. просто ми хрумна, че хората от openoffice.org може да са се погрижили да има някаква интеграция между двете приложения, т.е. много е вероятно да няма такава възможност.
Активен

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #4 -: Dec 01, 2005, 17:19 »
Отговорът, братя, според мен е много простичък. Въпреки, че верояно идеята която има gandonow ми е малко неясна.
Стартира се OpenOffice, избира се Connect to an existing database и от менюто SpreadSheet и всички таблици се появяват в базата данни. След което могат да се правят всякакви видове форми и търсения, но не могат да се създават таблици.
Таблици могат да се създадат само в Excel-ския файл с който е вързана базата данни. Другият проблем е този, че база свързана към екселски файл не е релационна, а и не е възможно със Paste Special да бъдат свързани двата файла.

Edit: не знам за odbc, mysql и excel - звучи ми интересно, но дори и да бъде инсталиран, то новата база данни, която ще се получи отново няма да бъде напълно релационна, така, че това е което мога да кажа.
Братко gandonov разкажи повече за целите за които ще използваш тази база, може да измислим нещо.

New_Edit: Все нещо забравям: Та, ако създадеш нова таблица във свързания с Base файл тя ще се появи при следващото обновяване на базата - т.е. всяка промяна в Spreadsheet се отразява, все едно OpenOffice е свързан с външна база данни.
Активен

It makes you awful glad that you were born a man.

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #5 -: Dec 01, 2005, 18:10 »
/offtopic
На тая хава за odbc-то целта и е като имаш някакви данни в ексел и искаш да ги достъпиш през стандартно api за бази данни. То е ясно, че ексела не е релационна база от данни и изобщо не е никаква база от данни, а е програма за работа с електронни таблици, но понякога му се налага на човек да прави такива магарии и е удобно за такива цели. '<img'>
Активен

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #6 -: Dec 02, 2005, 01:55 »
Относно парсер-а - няма такова нещо. Получаваш таблиците от външната база данни така както са записани в нея (същото важи и за Spreadsheet).
Ако искаш идея как да използваш таблиците от Excel и да ги въведеш в истинска база данни, мога да дам една чисто теоритична такава - записваш таблиците като csv файл от Excel (или може би текстов файл - то май csv беше текстов с табулации) и ги въвеждаш в postgresql - знам къде е примера как става, но нямам време да го разглеждам подробно. Погледни тук  този пример. А ето тук е пълното описание на командата COPY. Има и описание на копирането на информация от csv файл.
Дано това да ти върши работа. След което можеш спокойно да използваш OpenOffice с драйвъра за postgreql - работи и съм го тествал и в мрежа - никакви проблеми.
Активен

It makes you awful glad that you were born a man.

George Andonov

  • Напреднали
  • *****
  • Публикации: 261
  • Distribution: Ubuntu
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #7 -: Dec 02, 2005, 10:53 »
Цитат (alabal @ Дек. 01 2005,18:19)
... разкажи повече за целите за които ще използваш тази база ...

Първо да обясня за какво се използва въпросната база.
В Excell-ски файл са данните за всички клиенти (имена, адреси, номера, продукти, услуги, оборот и т.н.). Всеки месец се генерират куп фактури, пощенски пликове и разни др. документи (прави се с Mail Merge).

Недостатъците са, че трудно се правят "сложни" документи (с повече логика и формули).

Затова пренаписвам back-end частта на системата, данните да се съхраняват в база (таблици, view-та, релации и т.н.), а не във flat файлове.

И сега за проблемите ми:
Разбрах как да прехвърлям данни от OOBase в OOCalc.
 1. Стартира се OOCalc.
 2. От менюто Tools - Options - OpenOffice.org Base - Connections се добавя базата с данни (нов data source).
 3. Отваряш новият Data Source и имаш достъп до всичси обекти в базата. Маркираш данните(от базата) и избираш Data to Text. И paste на данните в OOCalc.

Само, че на мен ми трябва точно ОБРАТНОТО '<img'>  - от OOCalc в OOBase

Цитат (alabal @ Дек. 01 2005,18:19)
... Стартира се OpenOffice, избира се Connect to an existing database и от менюто SpreadSheet и всички таблици се появяват в базата данни. ...
@alabal - Това кеото предлагаш, въобще не мога да го намеря в менютата. Нито Connect to an existing database, нито SpreadSheet.
Би ли казал, как точно се прави?

Следващ въпрос: Как точно се вкарват данни от CSV (Comma Separated) файл в OOBase?

И още нещо което ми хрумна. Написал ли е някой функцията Slovom() за OpenOffice? Ако я имате, дайте я насам.  '<img'>
Ако никой я няма, аз ще я напиша другата седмица.
Активен

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #8 -: Dec 02, 2005, 11:32 »
Грешката е езикова - Отваряш OpenOffice Base. При стартирането има три опции -
Create Data Base
Open an existing data base
Connect to an existing data base

Избираш третото. Отодолу под него има падащо меню от което избираш SpreadSheet.
За COPY - ако погледнеш втория линк ще видиш, че има специфичен синтаксис за import на csv файлове. Иначе трябва да си направиш структурата на таблицата с INSERT и после да използваш COPY. За съжаление, в момента не мога да инсталирам postgresql, за да пробвам - и на мен ми е интересно, а и ще е полезно за едно две неща.
Виж, обаче какво пише за csv файловете:
Цитат
Note:  Many programs produce strange and occasionally perverse CSV files, so the file format is more a convention than a standard. Thus you might encounter some files that cannot be imported using this mechanism, and COPY might produce files that other programs cannot process.
Така че може и да има проблеми, но excel позволяваше май и запис на чист txt.
Както и да е. Четох, че има програми за автоматизирана връзка между Excel и postgresql, но намерих само за windows и всичките платени здраво, вероятно има и opensource, но аз не намерих.

След като си направиш базата със старите данни от excel за postgresql можеш да правиш всички тези неща които си написал директно към нея и да ползваш OOffice за frontend, та дори и да я направиш централизирана с права за достъп от различни работни места и пр. и пр., което с access би струвало една прекрасна сума, която ако ти дадат 10% премия за запазването й ще изкараш доста весела Коледа и Нова година.

А в excel има ли я тая функция "Slovom()" - ако я има там има я и в OpenOffice- ако не - можеш ти да я напишеш - аз не съм срещал до сега подобна функция.
Активен

It makes you awful glad that you were born a man.

George Andonov

  • Напреднали
  • *****
  • Публикации: 261
  • Distribution: Ubuntu
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #9 -: Dec 02, 2005, 12:12 »
Цитат (alabal @ Дек. 02 2005,12:32)
...Отваряш OpenOffice Base. При стартирането има три опции -
Create Data Base
Open an existing data base
Connect to an existing data base

Избираш третото. ....
Thanx, мерси, спасиба, багодаря и т.н. '<img'>
Имаш бира от мен. Или по-добре повече бири.
Точно там не бях погледнал. Това е защото не спирам OpenOffice-а '<img'>

Относно Slovom():
Цитат (alabal @ Дек. 02 2005,12:32)
...А в excel има ли я тая функция "Slovom()" ... аз не съм срещал до сега подобна функция.

Това е ценна функция, ако изготвяш документи. Счетоводно изискване е сумите да бъдат изписани "словом", т.е. 2 716.54лв. - "Две хиляди седемстотин и шестнадесет лева и петдесет и четири ст."
В Excell, разбира се, я няма. Аз си я написах.
Няма да е особен продлем да я port-на за OpenOffice.
Активен

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #10 -: Dec 02, 2005, 12:36 »
Няма проблем - бирите ще ги изпием, но все пак използването на SpreadSheet като база данни си е дървено решение според мен - означава, че ще работиш с ols файла и после ще правиш справки в Base. Мисля, че и View не можеш да направиш по тоя начин.
По-качественото би било да се импортнат данните в postgresql, отново според мен.
Активен

It makes you awful glad that you were born a man.

George Andonov

  • Напреднали
  • *****
  • Публикации: 261
  • Distribution: Ubuntu
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #11 -: Dec 02, 2005, 12:52 »
Въобще не смятам да използвам SpreadSheet като база с данни. Целта ми е еднократно да импортирам данните в новата база, която е HSQL Database Engine.

Вече съм почти готов. Да ти кажа какво направих.
 1. Отворих старият Excell-ски файл в OOBase (по твоя начин).
 2. Отворих си новата база, в OOBase.
 3. Drag-and-drop на таблиците от старата база в новата. Така прехвърлих данните в нови таблици, като запазих старата структура на данните.
 4. Сега ми остава да разхвърлям данните по новите таблици.

':xclam:' Още веднъж благодаря за помощта.
Активен

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #12 -: Dec 02, 2005, 12:57 »
Тая база данни не я знам. Аз четох, че ставало и с релации, но твоя начин ми изглежда по-лесен. Хайде да опишеш процеса в едно кратичко howto. Pls.

А аз ще тичам, че окъснях безндадеждно.
Активен

It makes you awful glad that you were born a man.

George Andonov

  • Напреднали
  • *****
  • Публикации: 261
  • Distribution: Ubuntu
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #13 -: Dec 02, 2005, 13:14 »
HSQLDB е вграденият database engine в OpenOffice.org. Поддържа ANSI-92 SQL, SQL 99, 2003 и всякакви екстри.
Много е удобна за малки задачи, като моята.

Има смисъл от инсталиране и конфигуриране на отделен DataBase сървър, само ако приложението нарастне сериозно. Но тогава миграцията към MySQL, PostgreSQL, Oracle  или нещо друго, е тривиална.
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Импорт на данни в OpenOffice Base
« Отговор #14 -: Dec 02, 2005, 13:55 »
HSQL определено е удобна за такива цели, но машината на която се ползва трябва да е сравнително добра, 'щото е писана на Java '<img'>

При мене на G3/400MHz се задъхва силно '<img'>
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Да преведем OpenOffice?
Преводи на програми
fire 6 6504 Последна публикация May 30, 2002, 19:08
от dafo
OpenOffice.org
Настройка на програми
IvanST 4 3082 Последна публикация Jan 08, 2003, 11:54
от
E: base-passwd
Хардуерни и софтуерни проблеми
Златко 3 2204 Последна публикация Apr 05, 2009, 14:09
от mom
ORACLE DATA BASE ADMINISTRATOR
Търсене
bulwork 8 3836 Последна публикация Jun 30, 2009, 20:27
от BULFON
Как да инсталирам XCP-1.0-base-42052.iso ?
Настройка на програми
3p0 3 1734 Последна публикация Dec 25, 2011, 21:39
от romeo_ninov