ich versuche in eine Tabellenzelle per Java eine Datei einzufügen. Es muss theoretisch möglich sein, denn im Writer kann man dies problemlos über das Menü Einfügen/Datei realisieren.
Um eine Datei in ein TextDokument einzufügen, verwendet ich folgenden Code:
Code: Alles auswählen
public void insertFile(File insertDatei, XTextRange textRange, OOTextDokument textDok) throws BKException {
XComponent component = textDok.getTextComponent();
XMultiServiceFactory writerFactory = (XMultiServiceFactory) UnoRuntime
.queryInterface(XMultiServiceFactory.class, component);
XTextDocument doc = textDok.getTextDocument();
XText xText = doc.getText();
XTextCursor xCursor = xText.createTextCursor();
XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, xCursor);
xCursor.gotoRange(textRange, false);
XDocumentInsertable insertDoc = (XDocumentInsertable) UnoRuntime
.queryInterface(XDocumentInsertable.class, xCursor);
PropertyValue[] aProps = new PropertyValue[] { new PropertyValue() };
String url = BKUtils.toURL(insertDatei);
try {
insertDoc.insertDocumentFromURL(url, aProps);
} catch (Exception e) {
throw new BKException(log, "Fehler beim Einfügen der Datei "
+ insertDatei.toString() + "\n in das Texdokument", e);
}
}
Schreibe ich die Methode um, so dass XDocumentInsertable über mein XTableCursor ermittelt wird:
Code: Alles auswählen
XTableCursor xTableCursor = textTabelle.createCursorByCellName(cellName);
XDocumentInsertable insertDoc = (XDocumentInsertable) UnoRuntime
.queryInterface(XDocumentInsertable.class, xTableCursor);
Kann mir jemand helfen?
Vielen Dank!
Michaela