Format komórek i zakresów (było: adres arkusza)

Makropolecenia i funkcje w języku Basic

Format komórek i zakresów (było: adres arkusza)

Postprzez najmar11 » Śr mar 24, 2010 1:48 pm

(ciąg dalszy wątku viewtopic.php?f=9&t=255)

a czy w tym makro można jeszcze zrobić tak, żeby nadawało odpowiedni format tym komórkom?
tzn. czy jest coś takiego np.:
"ark.getCellByPosition(0,i).Format = " i tu bym wpisywał, że np. komórka ma mieć format liczbowy, z dwoma miejscami po przecinku, albo że komórka ma mieć górną krawędź? itp...

zmodyfikowałem sobie na moje potrzeby to makro, ale po każdym jego użyciu, arkusz "podsumowanie" muszę ręcznie formatować żeby było ładne na wydruku :) a tak, miałbym już gotowy raporcik...
Ostatnio edytowano Cz mar 25, 2010 6:34 pm przez Jan_J, łącznie edytowano 2 razy
Powód: rozszczepienie wątku
OOo 3.1.1, Kubuntu
najmar11
 
Posty: 4
Dołączył(a): Cz lut 04, 2010 1:28 pm

Re: adres arkusza

Postprzez Jan_J » Śr mar 24, 2010 4:13 pm

Co do formatu danych: http://api.openoffice.org/docs/common/r ... ormat.html
Jeżeli chodzi o format prezentacyjny, to albo używasz gotowych nazwanych stylów: właściwość CellStyle przypisana do komórki lub zakresu -- tak jest najłatwiej w obrębie jednego dokumentu;
albo dłubiesz w wartościach każdej cechy osobno -- popatrz spis właściwości obiektów klasy Cell lub CellRange: http://api.openoffice.org/docs/common/r ... rties.html (z jakiegoś powodu lista nie jest kompletna, brakuje w niej np. CharHeight).
JJ
LO (6.1|6.2) ∙ AOO 4.1.6 ∙ Python (3.7|2.7) ∙ Unicode 12 ∙ LATEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Fedora|CentOS|SUSE)
Jan_J
 
Posty: 3955
Dołączył(a): Pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: adres arkusza

Postprzez najmar11 » Cz mar 25, 2010 1:24 pm

Jan_J napisał(a):Co do formatu danych: http://api.openoffice.org/docs/common/r ... ormat.html
Jeżeli chodzi o format prezentacyjny, to albo używasz gotowych nazwanych stylów: właściwość CellStyle przypisana do komórki lub zakresu -- tak jest najłatwiej w obrębie jednego dokumentu;
albo dłubiesz w wartościach każdej cechy osobno -- popatrz spis właściwości obiektów klasy Cell lub CellRange: http://api.openoffice.org/docs/common/r ... rties.html (z jakiegoś powodu lista nie jest kompletna, brakuje w niej np. CharHeight).


sorry, że tak chcę łopatologicznie, ale ja dopiero raczkuję w tych sprawach...

czyli żeby nadać odpowiedni format danych (no np. walutowy) jakiej formuły trzeba użyć?

Kod: Zaznacz cały   Rozszerz widokZwiń widok
ark.getCellByPosition(1,i).?????????? = CURRENCY


próbowałem różne kombinacje, np. pod znaki zapytania wstawiałem "NumberFormat", ale coś mi nie wychodzi... :(

Co do używania gotowych stylów, robię coś takiego:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
ark.getCellByPosition(1,i).CellStyle = "Wynik"


fajnie działa, i tak będzie chyba najprościej...

a jak używać właściwości obiektu Cell? jaka powinna być składnia?
kombinowałem na kilka sposobów np.:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
ark.getCellByPosition(2,i).TopBorder

ale to chyba nie tak
OOo 3.1.1, Kubuntu
najmar11
 
Posty: 4
Dołączył(a): Cz lut 04, 2010 1:28 pm

Re: adres arkusza

Postprzez Jan_J » Cz mar 25, 2010 1:42 pm

Prawie tak. Sens w tym, że domyślne ramki Cell i Range są niemodyfikowalne. Trzeba se ramkę zrobić, i podpiąć do obiektu. Załączam banalne działające przykłady:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
Sub takieSobieZabawy()
  rem struktura ramki + jej właściwości
  Set b = createUNOStruct("com.sun.star.table.BorderLine")
  b.InnerLineWidth = 50
  b.OuterLineWidth = 50
  b.Color = rgb(0,0,128)

  s = thisComponent.CurrentController.ActiveSheet

  rem stosuj do wybranej komórki
  c = s.getCellByPosition(10,10)
  c.TopBorder = b
  c.BottomBorder  = b
  c.LeftBorder  = b
  c.RightBorder  = b
  c.CharHeight = 24

  rem stosuj do wybranego zakresu
  c = s.getCellRangeByPosition(0,0,2,2)
  c.TopBorder = b
  c.BottomBorder  = b
  c.LeftBorder  = b
  c.RightBorder  = b
  c.CharHeight = 24

End Sub
Powodzenia
JJ
LO (6.1|6.2) ∙ AOO 4.1.6 ∙ Python (3.7|2.7) ∙ Unicode 12 ∙ LATEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Fedora|CentOS|SUSE)
Jan_J
 
Posty: 3955
Dołączył(a): Pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: adres arkusza

Postprzez najmar11 » Cz mar 25, 2010 3:25 pm

super dzięki za przykład, już wiem "o co kaman" , ale to faktycznie trochę jest zabawy z bezpośrednim nadawaniem komórkom formatowania

szybciej, jak dla mnie, będzie zdefiniować sobie style i na nich operować

jeszcze jakbyś mi podpowiedział jaka składnia musi być, żeby nadawać odpowiedni format danych
jak używać tego co mi dałeś w tym linku:
http://api.openoffice.org/docs/common/ref/com/sun/star/util/NumberFormat.html

będę bardzo zobowiązany :)
OOo 3.1.1, Kubuntu
najmar11
 
Posty: 4
Dołączył(a): Cz lut 04, 2010 1:28 pm

Re: format komórek i zakresów

Postprzez Jan_J » Cz mar 25, 2010 3:28 pm

Na NumberFormat się nie znam, zdarzało mi się go tylko czytać. Ale popatrz tu: http://codesnippets.services.openoffice ... rmats.snip i tu: http://www.oooforum.org/forum/viewtopic.phtml?t=86411
JJ
LO (6.1|6.2) ∙ AOO 4.1.6 ∙ Python (3.7|2.7) ∙ Unicode 12 ∙ LATEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Fedora|CentOS|SUSE)
Jan_J
 
Posty: 3955
Dołączył(a): Pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Format komórek i zakresów (było: adres arkusza)

Postprzez mg2 » Cz mar 25, 2010 6:43 pm

Utwórz nowy styl komórki z odpowiednim formatowaniem
"Format" -> "Style i formatowanie"

Jeżeli chcesz się bawić makrem to tu jest prosty przykład użycia NumberFormat

http://wiki.services.openoffice.org/wik ... _Documents
OOo3.1.1 na Ubuntu 9.04
mg2
 
Posty: 170
Dołączył(a): Cz sty 28, 2010 9:20 pm

Re: Format komórek i zakresów (było: adres arkusza)

Postprzez martaposty1 » Śr lip 03, 2013 12:26 pm

A co jeśli chodzi o stworzenie jednego, pełnego dokumentu jako wzoru dla innych. Czy jest możliwość zdefiniowania jednego style dla wyglądu całego dokumentu?
Spójrz praw­dzie w oczy i po­wiedz, że to kłamstwo...
martaposty1
 
Posty: 12
Dołączył(a): Wt lip 02, 2013 2:20 pm


Powrót do Basic

Kto przegląda forum

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

cron