Hallo,
ich will mit Java LibreOffice fernsteuern. Das meiste klappt auch, aber an einer Stelle hake ich nun ziemlich:
Ich habe ein TextDokument mit einer darin enthaltenen Tabelle und einer Textmarke/Platzhalter darin. Stellt euch eine Rechnungsvorlagedatei vor.
Ich suche mir den Platzhalter in der ersten Nutzzeile und möchte dann für jeden Bestellposten eine Zeile mit meinen Daten erstellen und füllen.
In der Vorlagedatei habe ich mich um Formatierung, Spaltenzahl etc. gekümmert, in meinem Programm möchte ich dann die Daten füllen.
Wenn ich mit einem SearchDescriptor suche, finde ich per findFirst-Methode auch den ersten Texteintrag. Aber dann komme ich nicht weiter.
Hat jemand eine Idee für mich?
Danke
Elmar
🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!
>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
In Java im Writer nach einer Tabelle suchen
Re: In Java im Writer nach einer Tabelle suchen
Ich konnte mir selber helfen:
Mit der Klasse XTextTablesSupplier kann ich meine Tabellen durchiterieren und dann über Zeilen und Spalten meine Zielposition finden.
Dort ist es dann möglich, weitere Zeilen/Spalten einzufügen.
Die notwendigen Hinweise dazu habe ich im Buch Java LibreOffice Programming von Andrew Davison (https://fivedots.coe.psu.ac.th/~ad/jlop/) gefunden.
Mit der Klasse XTextTablesSupplier kann ich meine Tabellen durchiterieren und dann über Zeilen und Spalten meine Zielposition finden.
Dort ist es dann möglich, weitere Zeilen/Spalten einzufügen.
Code: Alles auswählen
XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier)
UnoRuntime.queryInterface( XTextTablesSupplier.class, xTextDocument );
XNameAccess xNamedTables = xTablesSupplier.getTextTables();
for (String elementName : xNamedTables.getElementNames()) {
System.out.println("Tabellenname : " + elementName);
}
Object oTable = xNamedTables.getByName("Tabelle1");
XTextTable xFoundTable = UnoRuntime.queryInterface(XTextTable.class, oTable);
XTableRows xRows = xFoundTable.getRows();
xRows.insertByIndex(3, 2);
An alle, die das LibreOffice-Forum gern nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️