Tema: Re: [Python, LibreOffice]: reikia krypties
Autorius: Laimis
Data: 2014-04-01 15:52:20
ejs rašė:

> Ten string'ą reik paduot, tai mane ir domina ar pvz egzistuoja
> 'GetActiveObject('Openoffice.Calc')'

AFAIK, analogiško MSO — ne.
Čia jau UNO; viskas prasideda nuo ('com.sun.star.ServiceManager') ir 
toliau jau...(you don't wanna know).

Labai panašu, kad UNO metodiškai nuo pat šaknų kūrė Sun'as (užkietėję 
java vyrukai) lyg iš karto žinodamas, kad prakiš tą StarOffice'ą 
Oracle'ui... :-)

Gali bandyti įsikirsti, bet nerekomenduoju, kol tikrai nereikia:
https://wiki.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Bridge/Automation_Bridge
http://api.libreoffice.org/docs/idl/ref/index.html
http://api.libreoffice.org/examples/examples.html

> tikėjaus per dotNET'ą galima valdyti OO/LO. Su OO serverio režimu lyg ir
> esu nagrinėjesis kažkokį pavyzdį, reiks kelt užrašus.

Tai galima, bet...


> Ech, vėl reikės mokytis

Tai, kad nieko čia mokytis nereikia:

ods = ODS()

# sheet title
sheet = ods.content.getSheet(0)
sheet.setSheetName('Totals')

# Cell1
sheet.getCell(0, 1).stringValue("Foo")
sheet.getCell(1, 1).floatValue(2)

# Cell2
sheet.getCell(0, 2).stringValue("Bar")
sheet.getCell(1, 2).floatValue(3)

ods.save(...)

Easy.

>
> Python'as modelio objektus pasiekia per dotNET, taip kad tas pats š...

Taip, bet kam tau dar užsikrauti į atmintį ir LibreOffice komponentus 
(su UNO taip paprasta, kaip MSO tikrai nebus), kuriuos dar reikia ir 
turėti (t.y. turėti Libre/OO instaliuotą ir dar win OS, nes OLE kitose — 
nėra), jei gali tiesiog suformuoti ODS failą?

> failą. Yra tam skirtų plugin'ų, bet jie dirba tik su instaliuotu ekceliu
> ir neradau nė vieno (mokamo arba ne), kuris savarankiškai suformuotų
> XLS(X) failą.

Tos python'o bibliotekos, kurias siūliau, nereikalauja instaliacijos 
(pačios kuria/rašo ODS). Bet jei reikia XLSX, tai juk pateikei Revit'o 
pavyzdį; taip, dirbant per OLE/COM automation sąsajas, reikia 
instaliacijos (nes tos sąsajos ir yra instaliacijos dalis, o ne 
atskiri/nepriklausomi komponentai).

Yra alternatyvų (xlwt, openpyxl) :
http://www.python-excel.org/
http://www.simplistix.co.uk/presentations/python-excel.pdf
https://pythonhosted.org/openpyxl/