Zbiorcze edytowanie dokumentów
-
- Posty: 3
- Rejestracja: pn sie 20, 2012 8:28 am
Zbiorcze edytowanie dokumentów
Mój problem jest następujący. Wyprodukowałem około 200 dokumentów, które poza adresatem i odpowiednią formą "Pan" lub "Pani" niczym się nie różnią. Nie pytajcie czemu nie zrobiłem tego z korespondencji seryjnej, to nie ja zarządziłem taką a nie inną metodykę pracy. Jednakże w trakcie pracy okazało się, że muszę usunąć z niego jeden akapit. Da się to zrobić jakoś hurtowo, czy może muszę każdy dokument kolejno otwierać, a potem to edytować?
Open Office 3.1 na Windows 2000
-
- Posty: 3
- Rejestracja: pn sie 20, 2012 8:28 am
Re: Zbiorcze edytowanie dokumentów
Teraz wpadł mi do głowy pewien pomysł. Da się uruchomić makro na tych dokumentach, bez ich otwierania?
Open Office 3.1 na Windows 2000
Re: Zbiorcze edytowanie dokumentów
Witam
Do poprawnego działania wszystkie dokumenty muszą być w jednym katalogu i muszą mieć nazwy z kolejnymi numerami (np. doc1.odt doc2.odt...). Jeśli zmiana nazw jest uciążliwa poszukaj programu do hurtowej zmiany nazw plików (jest tego trochę). Pozmieniaj w kodzie zaznaczone linie, ustaw licznik na ilość plików do zmiany zawartości i spokojnie wypij zasłużoną kawkę.
Ps. makro umieść nie w modułach dokumentów, tylko w swojej bibliotece "Moje okna dialogowe i makra.Standard"
Jeśli coś będzie się kiełbasiło odhacz linię "wait(500)", trochę spowolni to wykonywanie procedury.
Pozdrawiam
Tego nie wiem, ale proponuje poniższe rozwiązanie.MatkaBoskaBiurowa pisze:Da się uruchomić makro na tych dokumentach, bez ich otwierania?
Kod: Zaznacz cały
Sub OpenChangeSaveClose
Dim args(0) as New com.sun.star.beans.PropertyValue
Dim Doc As Object
Dim Replace As Object
oFolder = "/home/slav/Dokumenty/"'twoja ścieżka dostępu
For i = 1 to 3 'zmień na twoją ilość tu tylko trzy dokumenty o nazwie
'"Test1.odt, Test2.odt, Test3.odt
oFile = "Test" & trim(str(i)) & ".odt"
cUrl = ConvertToURL( oFolder & oFile )
oTmpDoc = StarDesktop.LoadComponentFromUrl(cUrl, "_blank", 0, args())
Doc = ThisComponent
Replace = Doc.createReplaceDescriptor
Replace.SearchRegularExpression = True
Replace.SearchString = "kota"'Poszukiwany ciąg
Replace.ReplaceString = "psa"'zmiana na
Doc.replaceAll(Replace)
oTmpDoc.store'zapis i zamknięcie
oTmpDoc.dispose
'wait(500)
next
End Sub
Ps. makro umieść nie w modułach dokumentów, tylko w swojej bibliotece "Moje okna dialogowe i makra.Standard"
Jeśli coś będzie się kiełbasiło odhacz linię "wait(500)", trochę spowolni to wykonywanie procedury.
Pozdrawiam
LibreOffice 5.1.2.2 Ubuntu 16 LTS
-
- Posty: 3
- Rejestracja: pn sie 20, 2012 8:28 am
Re: Zbiorcze edytowanie dokumentów
O! Bardzo zacny pomysł. Ale ma jedną słabą stronę. Nazwy muszą zostać jak są, tj. nazwiskami adresatów. Chyba, że dałoby się wprowadzić zamiast "test" znak "*" albo coś podobnego, zastępującego dowolny ciąg? Wtedy mógłbym pozmieniać np na:
Kowalski1, Nowak2, Malinowski3, etc. bądź odwrotnie 1Kowalski, 2Nowak, 3Malinowski?
Kowalski1, Nowak2, Malinowski3, etc. bądź odwrotnie 1Kowalski, 2Nowak, 3Malinowski?
Open Office 3.1 na Windows 2000
Re: Zbiorcze edytowanie dokumentów
O Matko Boska jakaś ty, MatkaBoskaBiurowa wymagająca, ale co się nie robi dla świętości.
Ponieważ pętla wczytuje wszystkie pliki z wskazanego katalogu, przenieś pliki do edycji do innego katalogu lub wyrzuć te które nie chcesz poddać kosmetyce. Mam nadzieje że to jest to czego oczekujesz.
Pozdrawiam
Kod: Zaznacz cały
'Otwiera wszystkie pliki w katalogu
Sub OpenChangeSaveClose
Dim args(0) as New com.sun.star.beans.PropertyValue
Dim Doc As Object
Dim Replace As Object
oFolder = "/home/slav/Dokumenty/test/"'twoja ścieżka dostępu
oFile = Dir( oFolder, 0)
Do While oFile <> ""
cUrl = ConvertToURL( oFolder & oFile )
oTmpDoc = StarDesktop.LoadComponentFromUrl(cUrl, "_blank", 0, args())
Doc = ThisComponent
Replace = Doc.createReplaceDescriptor
Replace.SearchRegularExpression = True
Replace.SearchString = "psa"'Poszukiwany ciąg
Replace.ReplaceString = "kota w butach"'zmiana na
Doc.replaceAll(Replace)
oTmpDoc.store'zapis i zamknięcie
oTmpDoc.dispose
oFile = Dir
Loop
End Sub
Pozdrawiam
LibreOffice 5.1.2.2 Ubuntu 16 LTS