Strona 1 z 1
Format komórek i zakresów (było: adres arkusza)
: śr mar 24, 2010 1:48 pm
autor: najmar11
(ciąg dalszy wątku
http://user.services.openoffice.org/pl/ ... ?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
: śr mar 24, 2010 4:13 pm
autor: 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
: czw mar 25, 2010 1:24 pm
autor: najmar11
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
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
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.:
ale to chyba nie tak
Re: adres arkusza
: czw mar 25, 2010 1:42 pm
autor: 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
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
: czw mar 25, 2010 3:25 pm
autor: 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/r ... ormat.html
będę bardzo zobowiązany

Re: format komórek i zakresów
: czw mar 25, 2010 3:28 pm
autor: Jan_J
Re: Format komórek i zakresów (było: adres arkusza)
: czw mar 25, 2010 6:43 pm
autor: 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)
: śr lip 03, 2013 12:26 pm
autor: 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?