Dopiero wgrałem Oo stąd pytanie - czy ktoś wie jak makrem zaimportować .csv do Calca za pomocą przycisku.
Andrzej.
Jak makrem zaimportować .csv
Jak makrem zaimportować .csv
OpenOffice 3.1 na Windows Vista
Re: Jak makrem zaimportować .csv
Oto szkic makra importu. Podpięcie pod przycisk dokombinuj sobie sam, to nie jest trudne.
Poszukaj też w Google haseł: import "Text - txt - csv (StarCalc)" FilterOptions
W sprawie opcji filtrów patrz np. http://wiki.services.openoffice.org/wik ... er_Options
Kod: Zaznacz cały
sub importText(byval fileURL as string)
Dim oDoc as object
Dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "InteractionHandler"
args1(0).Value = ""
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "CharacterSet"
args1(2).Value = 77 ' utf-8
args1(3).Name = "FilterOptions" ' opcje importu
args1(3).Value = "9" ' separator pól: Tab
oDesk = createUnoService("com.sun.star.frame.Desktop")
oDoc = oDesk.LoadComponentFromURL(fileURL, "_blank", 0, args1())
end sub
W sprawie opcji filtrów patrz np. http://wiki.services.openoffice.org/wik ... er_Options
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Jak makrem zaimportować .csv
Na obecnym etapie wiedzy nie wpadłbym na to. Jestem wdzięczny za listing.
Mozna wiedzieć "gdzie" lub "jak" takie rzeczy uzyskać, oczywiście jak to nie tajemnica lub własne odkrycia.
Andrzej.
Mozna wiedzieć "gdzie" lub "jak" takie rzeczy uzyskać, oczywiście jak to nie tajemnica lub własne odkrycia.
Andrzej.
OpenOffice 3.1 na Windows Vista
Re: Jak makrem zaimportować .csv
jednak nadal mam problem, bo chcę imprtować .csv do kolejnego arkusza.
Ten fragment kodu tworzy nowy dokument:
oDesk = createUnoService("com.sun.star.frame.Desktop")
oDoc = oDesk.LoadComponentFromURL(fileURL, "_blank", 0, args())
...a ten wpisuje do otwartego aktualnie arkusza ale likwiduje mi istniejące inne arkusze pozostawiając tylko ten jeden:
oDesc = ThisComponent.getCurrentController().getFrame()
oDoc = oDesc.LoadComponentFromUrl(fileURL, "", 2, args())
Ja zaimportować do otwartego dokumentu i wybranego w makrze arkusza taki .csv.
Andrzej.
Ten fragment kodu tworzy nowy dokument:
oDesk = createUnoService("com.sun.star.frame.Desktop")
oDoc = oDesk.LoadComponentFromURL(fileURL, "_blank", 0, args())
...a ten wpisuje do otwartego aktualnie arkusza ale likwiduje mi istniejące inne arkusze pozostawiając tylko ten jeden:
oDesc = ThisComponent.getCurrentController().getFrame()
oDoc = oDesc.LoadComponentFromUrl(fileURL, "", 2, args())
Ja zaimportować do otwartego dokumentu i wybranego w makrze arkusza taki .csv.
Andrzej.
OpenOffice 3.1 na Windows Vista
Re: Jak makrem zaimportować .csv
Tam: http://www.oooforum.org/forum/viewtopic.phtml?t=13861 jest mowa o imporcie kilku plików do osobnych arkuszy w jednym skoroszycie techniką ,,importuj csv, potem kopiuj i wklej''.
Bardziej elegancki sposób, przez ustanowienie łącza, podaje http://www.oooforum.org/forum/viewtopic.phtml?t=15678
Oba przykłady są coś warte. Powodzenia w adaptacji.
Bardziej elegancki sposób, przez ustanowienie łącza, podaje http://www.oooforum.org/forum/viewtopic.phtml?t=15678
Oba przykłady są coś warte. Powodzenia w adaptacji.
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Jak makrem zaimportować .csv
Skorzystałem z tej wersji:
druga wersja z tego samego linku nadaje się tylko do prostych zastosowań
bo ma problemy z użyciem filtra eksportera csv (jest zgłoszony bug).
Jak zwykle wyrazy wdzięczności
Andrzej.
Kod: Zaznacz cały
sub ImportCSVIntoSheet
oDoc = thisComponent
oSheet = oDoc.getSheets().getByIndex(0) ' 1st sheet (uwaga na niespodzianki po próbach otwarcia w kilku arkuszach)
sURL = "file:///C:/cat1/cat2/file.csv" ' set arguments
' sURL = "" ' ewntualna konwersja sciezki - sURL = ConvertToURL ( sURL )
' sRange=(A1:D30 ' parametr nieczynny - usuwany jest cały obszar arkusza
sFilter = "Text - txt - csv (StarCalc)"
sOption = "59,34,25"
nLink = com.sun.star.sheet.SheetLinkMode.NORMAL
oDoc.link(sURL, sRange, sFilter, sOption, nLink) ' link file
oDoc.setLinkMode(com.sun.star.sheet.SheetLinkMode.NONE) ' reset link
end sub
bo ma problemy z użyciem filtra eksportera csv (jest zgłoszony bug).
Jak zwykle wyrazy wdzięczności
Andrzej.
OpenOffice 3.1 na Windows Vista