LibreOffice makro wybrane kolumny

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO

LibreOffice makro wybrane kolumny

Postprzez szlejk » N mar 26, 2017 1:03 pm

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) Pobrane 36 razy
Libreoffice 5.20 Windows 10/ Ubuntu 16.04
szlejk
 
Posty: 6
Dołączył(a): N mar 26, 2017 1:00 pm

Re: LibreOffice makro wybrane kolumny

Postprzez szlejk » Cz mar 30, 2017 7:07 pm

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

Pozdrawiam

Kod: Zaznacz cały   Rozszerz widokZwiń widok
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) Pobrane 41 razy
Libreoffice 5.20 Windows 10/ Ubuntu 16.04
szlejk
 
Posty: 6
Dołączył(a): N mar 26, 2017 1:00 pm

Re: LibreOffice makro wybrane kolumny

Postprzez Jan_J » Cz mar 30, 2017 9:35 pm

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 (5.3|5.4) ∙ AOO 4.1.3 ∙ Python (2.7|3.6) ∙ Unicode 10 ∙ LATEX 2ε ∙ XML ∙ Unix tools ∙ Linux 3.x ∙ Fedora ∙ CentOS ∙ SUSE
Jan_J
 
Posty: 3399
Dołączył(a): Pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: LibreOffice makro wybrane kolumny

Postprzez szlejk » N kwi 30, 2017 10:29 pm

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 5.20 Windows 10/ Ubuntu 16.04
szlejk
 
Posty: 6
Dołączył(a): N mar 26, 2017 1:00 pm

Re: LibreOffice makro wybrane kolumny

Postprzez belstar » Pt maja 05, 2017 8:27 pm

Może tak
Kod: Zaznacz cały   Rozszerz widokZwiń widok
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
belstar
 
Posty: 622
Dołączył(a): Cz mar 17, 2011 9:08 am

[Solved] LibreOffice makro wybrane kolumny

Postprzez szlejk » Wt cze 06, 2017 4:53 pm

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

Pozdrawiam
Libreoffice 5.20 Windows 10/ Ubuntu 16.04
szlejk
 
Posty: 6
Dołączył(a): N mar 26, 2017 1:00 pm


Powrót do Makra i programowanie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości