Strona 1 z 1

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

PostNapisane: Śr mar 24, 2010 1:48 pm
przez najmar11
(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...

Re: adres arkusza

PostNapisane: Śr mar 24, 2010 4:13 pm
przez Jan_J
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).

Re: adres arkusza

PostNapisane: Cz mar 25, 2010 1:24 pm
przez najmar11
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

Re: adres arkusza

PostNapisane: Cz mar 25, 2010 1:42 pm
przez Jan_J
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

Re: adres arkusza

PostNapisane: Cz mar 25, 2010 3:25 pm
przez najmar11
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 :)

Re: format komórek i zakresów

PostNapisane: Cz mar 25, 2010 3:28 pm
przez Jan_J
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

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

PostNapisane: Cz mar 25, 2010 6:43 pm
przez mg2
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

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

PostNapisane: Śr lip 03, 2013 12:26 pm
przez martaposty1
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?