Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 Re: Calc » pole buněk do xml » 29. 8. 2017 07:57:30

Děkuji všem, makro napsáno a funguje skvěle. Až na jeden podstatný problém.
používám funkce:

ocellP21 = sheet.getCellByPosition( 1 , 7 ) 'koncova X
print #n ocellP21.value

když je v buňce desetinné místo, tak mi to exportuje s desetinnou čárkou. Potřeboval bych tečku. Ikdyž změním formát buněk, tak to nepomůže.
Je nějaký příkaz, který změní desetinný oddělovač při exportu makrem?
Děkuji

#2 Re: Calc » pole buněk do xml » 25. 8. 2017 13:02:12

už nic, pomohl příkaz print místo write....

#3 Re: Calc » pole buněk do xml » 25. 8. 2017 12:36:43

Děkuji, nějak se tím prokoušu.

trochu jsem studoval literaturu, delal par pokusu a narazil na problem (trochu off topic k tomuto tematu):

Sub EXPORT
Dim soubor as string
Dim fileno as integer
Dim radek1 as object
Doc = ThisComponent
Sheet = Doc. Sheets ( 1 )

radek1 = sheet.getCellByPosition( 2 , 1 ) 'radek 2
soubor =  "D:\pokus.txt"
fileno = freefile

Open soubor for output As #fileno

write #fileno radek1.string()

close #fileno

End Sub


vystupem je zapsani obsahu bunky do souboru, akorat mi to porad pise do uvozovek.   Kdyz je v bunce napsano AHOJ, v souboru mam "AHOJ" ...  daji se nejak uvozovky odstranit? Potreboval bych cisty text.
Dekuji

#4 Re: Calc » pole buněk do xml » 23. 8. 2017 12:58:03

ano, číslo je na tisícíny (s tečkou).
vzorově pro jeden řádek. makro uloží soubor do stejného adresáře, kde je zdrojová tabulka

#5 Re: Calc » pole buněk do xml » 23. 8. 2017 12:00:52

Pro upřesnění, že nejsem úplný nýmand: naprogramovat frézku není problém, dělám 5-ti osé programy... na to je ale jiný software. Dokonce i 3osý postprocessor jsem dal dohromady, jenže to je zase jiný jazyk.
Tento program je pro EDM stroje, kde doposud byl program víceméně texťák o dvaceti řádcích. S novým řídícím systémem přešli na zápis programu v něčem co vypadá jako XML (lze imortovat i starý txt soubor, ale jsem tvor zvídavý a navíc šťoura a rád bych se posunul dále a ulehčil lidem práci na stroji)

malá ukázka vzoru:

- <block isConverted="true" isValid="true">
  <key number="40" isActive="true" />
- <gList>
- <cncFunction number="">
  <cncParameter name="axisX" value="0.000" />
  <cncParameter name="axisY" value="0.000" />
  </cncFunction>
  </gList>
  </block>
- <block isConverted="true" isValid="true">
  <key number="50" isActive="true" />
- <mList>
- <cncFunction number="45">
  <cncParameter name="tankHeight" value="230.000" />
  </cncFunction>
  </mList>
.....
....
...
- <gList>
- <cncFunction number="1">
  <cncParameter name="axisX" value="286.000" />
  <cncParameter name="axisY" value="89.000" />
  <cncParameter name="axisZ" value="128.000" />
  <cncParameter name="axisC" value="30.000" />
  </cncFunction>
  </gList>
....
....
....

Mám tedy tabulku, kde jsou parametry procesu. např. výška hladiny - formát: číslo.
v řádku:
  <cncParameter name="tankHeight" value="230.000" />
bych tedy vše bral jako text, pouze hodnotu 230 bych bral z buňky...

dále v tabulce jsou souřadnice X-Y-Z-C.
- <cncFunction number="1">
  <cncParameter name="axisX" value="286.000" />
  <cncParameter name="axisY" value="89.000" />
  <cncParameter name="axisZ" value="128.000" />
  <cncParameter name="axisC" value="30.000" />

tady bych to vyplňoval smyčkou (to už jsem si stihl najít, takže syntax bych snad dal dohromady)

jestli se vyjádřím správně, tak by se jednotlivé řádky daly brát jako string prefix, real value (moje hodnota buňky), string suffix

a abych odpověděl: vždy se tedy jedná o pevně danou buňku resp. oblast buněk s číselným obsahem
string bych mohl například definovat v jiných buňkách jako text.

Jestli budete tak hodný a vytvořil mi makro, které uloží soubor s příponou ".ncx" do stejné složky, kde je zdrojový ".ods". Bude ukládat Buňku např. B6 ve formátu:  prefix z F6 - hodnota z B6 - suffix z G6.
Snad už bych se pak chytil, dodělal smyčku a nakopíroval potřebné řádky, aby byl výsledek pro stroj čitelný.

Děkuji

#6 Re: Calc » pole buněk do xml » 23. 8. 2017 08:28:50

Výstupní XML je program pro obráběcí stroj. Pokud se dá vytvořit xml pomocí makra, kde si vyberu oblast buněk, kde jsou proměnné a dále bude v makru "natvrdo" napsán text, pak je to přesně to, co potřebuji. Mohu poprosit o nějaký makro mustr?

#7 Calc » pole buněk do xml » 22. 8. 2017 11:51:28

Smrkoul
Odpovědí: 15

Dobrý den,
potřeboval bych poradit, jak napsat xslt pro export pomocí xml filtru.
Nějký syntax bych dal dohromady, ale nenašel jsem, jak definovat oblast buněk pro export. Potřebuji exportovat např. pouze pole buňek B5:D12 z listu 2.

Plus jako bonus, poradit, pokud jde do exportu zahrnout nějaký text jako "konstantu"


účel: v xml souboru má být určitý text pevně daný a některé proměnné v textu vzaté z tabulky na listu 2.

Děkuji

#9 Calc » rozdíl buněk makrem » 24. 10. 2010 18:13:56

Smrkoul
Odpovědí: 1

Ahoj,
řešilo se tu podobné téma, tak jsem si z něj vzal příklad. Jsem uplný makro amatér, tak prosím o pomoc.

Potřebuju odečíst ve více buňkách hodnotu z jiných buněk, ale aby se to po změně obsahu už neměnilo, tj. po stisknutí talčítka a ne vzorcem.

Na foru jsem našel a upravil toto:

sub pokus

    dokument = ThisComponent
    vyber = dokument.currentselection
    list = dokument.sheets(vyber.rangeaddress.sheet)
    bunka_zapis = list.getcellbyposition(19, i) 
    bunka_zdroj = list.getcellbyposition(12, i) 
    bunka_rozdil= list.getcellbyposition(3, i)
    bunka_zapis.value = bunka_zdroj.value - bunka_rozdil.value

end sub

toto celé bych potřeboval hodit do smyčky např pro i=0 až i=99.
Můžete mi k tomu prosím dopsat potřebné řádky?

Děkuji

#10 Re: Calc » filtr a řazení » 11. 2. 2010 07:19:19

Je možné, že to nefungovalo jen proto, že každé makro používalo stejnou datovou oblast?

Zkusil jsem tu oblast nadefinovat dvakrát pod jiným názvem a pro každé makro použil jinou oblast a už to chodí.

Ale nejde mi to do hlavy, protože ty oblasti měly úplně stejný rozsah buněk.

#11 Calc » filtr a řazení » 10. 2. 2010 22:21:03

Smrkoul
Odpovědí: 2

Mám tabulku např. o sloupcích A1 A2 A3 a 10 řádcích.
Vytvořil jsem si tlačítko spouštějící makro (přes záznam makra), co tabulku seřadí podle A1 a A2. Tlačítko normálně funguje. Vesele řadí tabulku ať v ní měním cokoliv.
Dále jsem vytvořil tlačítko s makrem co filtruje z tabulky prvky obsahující "1" do jineho listu. (filtr odstraňuje duplicity a hodnoty kopíruje).
Během záznamu makra to fungovalo správně, zkoušel jsem si měnit hodnoty v tabulce a vše bez problému. Dokud jsem nezmáčkl tlačítko pro srovnání prvků. Potom už nejde nic.

Celé by to mělo sloužit k tomu, že na jednom listu to dělá něco jako sumář a upozorňuje na prvky v tabulce, které jsou v ní jen jednou.
Řazění v tabule je pro snadnější orientaci. Zkoušel jsem místo řazení aktivovat automatický filtr, ale výsledek stejný - tj. okamžitě přestal fungovat filtr z makra.

Nevíte prosím někdo čím to může být?

  Děkuji

#12 Re: Calc » Filtry » 10. 2. 2010 16:23:45

Mam podobny problem. V listu2 mam tabulku s daty (sloupce např. Průměr, výrobní číslo, počet kusů) Tuto tabulku mam filtrovanou (standardnim filtrem) do listu 1. Filtruje mi to všechny položky s počtem kusu=1 (fitr nastaveny: Kopirovat vysledky do "buňka v list 1", bez duplikátů, ponechat kriteria filtru) Kvuli ponechani kriterii mam tabulku v listu 2 definovanou jako databazovou oblast.
V listu jedna mam tlacitko s makrem, ktere obnovuje databazovou oblast. Takhle to funguje, aleee... :-)
Kdyz chci do tabulky v listu 2 dat automaticky filtr, abych mohl snaze menit jeji hodnoty, tak mi to nejspis smaze filtr co vypisuje hodnoty do listu 1.
Nevite co s tim?

Zápatí

Používáme FluxBB