Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 20. 5. 2012 12:19:55

pancha
Člen
Registrace: 20. 5. 2012
Příspěvků: 7

Automatické vkládání z více txt do jednoho .odt (.doc) - VYŘEŠENO

Potřeboval bych poradit s problémem. Popíšu to na příkladu.
Mám několik souborů protokolu z výpočetního programu u kterých budu dodržovat nějakou logiku pojmenování (např: 01.txt, 02.txt .... xy.txt). Všechny uložené v jednom adresáři a potřeboval bych je nějak automatizovaně vkládat do jednoho souboru writeru, ve kterém už budu mít nadefinovánu hlavičku, patičku případně další texty, které se nemusí měnit. Napadlo mě, že by to šlo nějak přes makra, ale nikdy jsem to nedělal, tak nevím.
Díky za každou radu, případně nasměrování jak to vyřešit.


_______________________________________________________

Značím jako vyřešené


;o)

Editoval sedlacekdan (26. 5. 2012 18:40:40)

Offline

#2 25. 5. 2012 16:45:21

Lubos
Člen
Registrace: 27. 3. 2012
Příspěvků: 5

Re: Automatické vkládání z více txt do jednoho .odt (.doc) - VYŘEŠENO

Neznačím postup, snad vám to pomůže.

Předpokládejme pro začátek pevně nastavenou pracovní složku nazvanou D:\Buffer

Otevřu OpenOffice Writer (předpokládám velmi podobný postup v LibreOffice) a nový soubor uložím např. pod jmenem Vkladani.odt do D:\Buffer.

Do D:\Buffer si uložím 01.txt a 02.txt s nějakým textem.

Na kartě Nástroje zvolím položku Makra a zadám Zaznamenat Makro.
Objeví se okno s položkou Zastavit nahrávání.

Na kartě Vložit zvolím položku Soubor a vyberu svoji složku Buffer a v ní první soubor 01.txt.
V následujícím okně odklepnu Volba pro ASCI filtr tak jak je (nebo mohu změnit)

Zvolím Zastavit nahrávání, objeví se Makra v OpenOffice.org Basic.
Klepnu na Vkladani.odt, dám Uložit, buď potvrdím Modul1 nebo si zadám své jméno.
Potvrdím OK.
Nyní je uloženo makro s tímto textem (když vynechám komentáře označené rem):

sub Main
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Name"
args2(0).Value = "file:///D:/Buffer/01.txt"
args2(1).Name = "Filter"
args2(1).Value = "Text (encoded)"
dispatcher.executeDispatch(document, ".uno:InsertDoc", "", 0, args2())
end sub

Kde je důležtý odkaz  D:/Buffer/01.txt který lze v makru měnit, neb doplnit další řádky pro vložení dalšího souboru, takže výsledné makro vypadá:

sub Main
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args2(1) as new com.sun.star.beans.PropertyValue

args2(0).Name = "Name"
args2(0).Value = "file:///D:/Buffer/01.txt"
args2(1).Name = "Filter"
args2(1).Value = "Text (encoded)"
dispatcher.executeDispatch(document, ".uno:InsertDoc", "", 0, args2())

args2(0).Value = "file:///D:/Buffer/02.txt"
dispatcher.executeDispatch(document, ".uno:InsertDoc", "", 0, args2())
end sub

Zbývá jen dodat, že úprava makra je možná volbami:
Nástroje – Makra – Správce maker – OpenOffice.org Basic...
Vkladani Standard Module1 a tlačítko Upravit

A spuštění makra volbami:
Nástroje – Makra – Správce maker – OpenOffice.org Basic...
Vkladani Standard Module1 a tlačítko Spustit.

Takto je postup složitý, ale makro lze uložit pod tlačítko (v souboru do kteého vkládáme) pro které zvolíme netisknout aby „nestrašilo" ve výsledné sestavě, jména souborů mohou být volitelná, vybíraná ze seznamu atd., ale to už by byla jiná kapitola.

Nebo lze makro spouštět tlačítkem na nástrojové liště atd. atd.

Openoficy jsou prostě úžasné  :-)
Luboš.

Offline

#3 25. 5. 2012 21:37:17

pancha
Člen
Registrace: 20. 5. 2012
Příspěvků: 7

Re: Automatické vkládání z více txt do jednoho .odt (.doc) - VYŘEŠENO

Díky moc. To jsem potřeboval.

Offline

Zápatí