2010-07-21 18 views
6

OpenOffice belgesini (benim durumumda) widget'larla bazı basit şeyler yapmak için komut dosyası çalıştırmaya çalışıyorum. Yani, widget’tan widget’a metin kopyalamak istiyorum. Bunun için tek bir bileşen almak ve ondan metin almak istiyorum.VB veya python ile OpenOffice Formları Komut Dosyası Oluşturma

böyle şey yapması çalışıyorum:

document = ThisComponent.CurrentController.Frame 

oDocument  = ThisComponent 
oTextBoxFrom = document.getByName("Text Box 1") # 1 
oTextBoxFrom = oDocument.getByName("Text Box 1") # 2 

Ne sürüm 1. ne de 2. çalışmalarını. VB derleyicisi, "Metin Kutusu 1" e erişilemediğini gösterir, ancak bu bileşimi formumda var. Tahminimce bu bileşeni yanlış bir yerden almaya çalışıyorum, örn. çerçeve değil. Sadece belgenin yapısının ne olduğunu anlayamıyorum.

Bu oldukça kolay bir görev gibi görünüyor, ancak VO veya python'dan OO UNO nesnelerine erişim konusunda herhangi bir OpenOffice belirtimi bulamıyorum.

+0

OpenOffice veya LibreOffice hangi sürümünü kullanıyor? –

cevap

1

Openoffice komut dosyasıyla ilgili deneyimim yok ama örnekleri buldum, hiçbir zaman belgenin kendisinde hiçbir zaman getByName kullanmıyorlar.

docCalc = ThisComponent 
maFeuille = docCalc.Sheets.getByName("leCSV") 
.... 
for f = 0 to lesFamilles.Count -1' chaque famille 
nomFam = lesFamilles.ElementNames(f) 
uneFamille = lesFamilles.getByName(nomFam) 
... 
monDocument.TextTables.hasByName("Finances") 
... 
lesSections = monDocument.TextSections 
sectA = lesSections.getByName("Aline") 
Eğer http://oqei.free.fr/echange/VBA/Programmation_OpenOffice_org_3_ed1_v1.pdf bu büyük pdf kalanını bulabilirsiniz

, bu fransız mevcut olduğu, ancak kod ha evrenseldir? Umarım yardımcı olur ..

2

İyi günler. Eğer bir VB kullanmak seçerseniz

, şunu bilmen gerekir:

VBA: OpenOffice.org Basic ve VBA arasındaki uyumluluk için OpenOffice.org Basic dilini yanı sıra çalışma zamanı kitaplığı ile ilgilidir. OpenOffice.org API ve Dialog Editor, VBA ile uyumlu değildir (bu arabirimlerin standartlaştırılması, OpenOffice.org'da sağlanan kavramlarının çoğunu imkansız kılacaktır).

o python olacaksa: Python kodlama dili ile

OpenOffice.org 3.1 gemiler, sürüm 2.6.1. Eski OpenOffice.org, Python sürüm 2.3.4 ile birlikte gelir. Bu Python dağıtımı, UNO API'sini python komut dosyası diline bağlayan Uno modülü ile birlikte gelir. Python'un bu sürümünü Linux'ta çalıştırmak için doğrudan OpenOffice.org PATH'e gidebilirsiniz. Ve bir Python'un herhangi bir dağıtımı ile bekleyeceği gibi, OOo-Python da komut satırından çalıştırılabilir. Eğer zaten ayrı bir Python 2.6 kurulumuna sahipseniz, bu talimatları kullanarak uno modülünü (Python-UNO köprüsü) ona aktarabilirsiniz. Python'un Windows üzerinde kurulu olan farklı bir sürümü varsa, UNO API'sine Python köprüsü yerine COM köprüsünü kullanarak da erişebilirsiniz. Eklenti pywin32 modülünü gerektirir, böylece Python COM ile konuşabilir. Not , UNO API'si tekdüze olsa da, iki köprüsünün uygulanması biraz farklıdır, bu nedenle her biri için gerekli olan sözdizimi de bazen farklıdır .

Python UNO bridge

UPD

: ooobloger piton ve uno entegrasyon anlayışı ile size yardımcı olabilir.

İlgili konular