LibreOffice makro wybrane kolumny

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
szlejk
Posty: 12
Rejestracja: ndz mar 26, 2017 1:00 pm

LibreOffice makro wybrane kolumny

Post autor: szlejk »

Witam.
Potrzebuję wskazówek jak napisać makro w Libreoffice . Makro ma za zadanie skopiować wybrane kolumny (A1,B1,C1,D1) z pliku Nadajnik.xlsx do pliku Odbiornik.ods w arkusz Cel.

Dziękuję każdą wskazówkę.
Załączniki
Testy.zip
(5.37 KiB) Pobrany 241 razy
Libreoffice 6.0.4.2 Windows 10/ Ubuntu 18.04 Libreoffice 6.0.4.2
szlejk
Posty: 12
Rejestracja: ndz mar 26, 2017 1:00 pm

Re: LibreOffice makro wybrane kolumny

Post autor: szlejk »

Witam.
Udało mi się z poziomu arkuszy tego samego dokumentu, jak zrobić by kopiował z arkusza innego dokumentu?

Pozdrawiam

Kod: Zaznacz cały

Sub Main5
Doc = ThisComponent
Sheets = Doc.Sheets()
SheetCopy = Sheets.getByName("jeden")
SheetPaste = Sheets.getByName("dwa")
CopyRange = SheetCopy.getCellRangeByName("A1:A11")
PasteCell = SheetPaste.getCellRangeByName("B1")
CopyAddress = CopyRange.RangeAddress
PasteAddress = PasteCell.CellAddress
SheetCopy.CopyRange(PasteAddress, CopyAddress)
End Sub
Załączniki
Odiornik.ods
(13.68 KiB) Pobrany 257 razy
Libreoffice 6.0.4.2 Windows 10/ Ubuntu 18.04 Libreoffice 6.0.4.2
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: LibreOffice makro wybrane kolumny

Post autor: Jan_J »

zamiast ThisComponent trzeba rozróżnić dwa dokumenty, najlepiej po nazwie.
Musisz zdecydować, czy działasz na otwartych wcześniej dokumentach, czy próbujesz otwierać dokumenty o podanych nazwach, czy też pytasz użytkownika o nazwę/nazwy.
Radzę zajrzeć do OOME oraz AndrewMacro Andrew Pitonyaka. Setki prostych przykładów pogrupowane tematycznie.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
szlejk
Posty: 12
Rejestracja: ndz mar 26, 2017 1:00 pm

Re: LibreOffice makro wybrane kolumny

Post autor: szlejk »

Witam i dziękuję

Dokumenty nie będą wcześniej otwierane, makro ma za zadnie pobrać z nich dane z wybranych kolumn.
Poproszę o wskazówki jak pobrać dane z zewnętrznego arkusza, za pomocą makra?
Libreoffice 6.0.4.2 Windows 10/ Ubuntu 18.04 Libreoffice 6.0.4.2
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: LibreOffice makro wybrane kolumny

Post autor: belstar »

Może tak

Kod: Zaznacz cały

Sub Copy_Calc2Calc
	Dim Url As String
	Dim Properties(0) As New com.sun.star.beans.PropertyValue
	Dim quotes
	Dim Doc As Object
	Dim Sheet As Object
	Dim Cell As Object   
'************Dokument docelowy*************** 
	Doc = ThisComponent
	Sheet = Doc.Sheets.getByName("Arkusz1")
	Cell = Sheet.getCellRangeByName("A1:D10")
'********************************************
'****Ścieżka i parametry otwarcia pliku źródłowego
	Url = ConvertToURL("~/Calc2Calc/Nadajnik.xlsx")
	Properties(0).Name = "Hidden"
	Properties(0).Value = true
'*******************************************	
'********Otwarcie ukrytego pliku źródłowego
	quotes = StarDesktop.LoadComponentFromUrl(url, "_blank", 0, Properties())
'************lokalizacja danych źródłowych
	qSheet = quotes.Sheets.getByName("Arkusz1")
	qCells = qSheet.getCellRangeByName("A1:D10")
'**********pobranie danych źródłowych
	qDataArray = qCells.getDataArray
'**********wstawienie danych w pliku docelowym
	Cell.setDataArray(qDataArray)
'**********zamknięcie pliku źródłowego
	quotes.close(true)
End Sub
Zmień sobie ścieżkę do pliku źródłowego i zakresy komórek.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
szlejk
Posty: 12
Rejestracja: ndz mar 26, 2017 1:00 pm

[Solved] LibreOffice makro wybrane kolumny

Post autor: szlejk »

Dziękuję
Dokładnie o to mi mi chodziło.

Pozdrawiam
Libreoffice 6.0.4.2 Windows 10/ Ubuntu 18.04 Libreoffice 6.0.4.2
ODPOWIEDZ