Moin,
ich bearbeite mit C# Textdokumente. Ich habe Benutzerfelder in Tabellen definiert und möchte nun herausfinden in welcher Spalte der Tabelle das jeweilige Feld liegt.
Auf die Felder greife ich wie Folgt zu (Wert einfügen):
XTextFieldsSupplier xTextFieldsSupplier = mMe as XTextFieldsSupplier;
// Field-Master-Zugriff bekommen
XNameAccess xNamedFieldMasters = xTextFieldsSupplier.getTextFieldMasters();
XEnumerationAccess xEnumeratedFields = xTextFieldsSupplier.getTextFields();
// zum Key gehörenden Field-Master ansprechen
XPropertySet xPropertySet = xNamedFieldMasters.getByName(
"com.sun.star.text.FieldMaster.User." + key).Value as XPropertySet;
// Wert setzen
object ContentValue = Fields[key];
Type ContentType = ContentValue.GetType();
xPropertySet.setPropertyValue("Content", new uno.Any(ContentType, ContentValue));
Wie man auf Tabellen zugreift (Zeilen anfügen, löschen etc.) weiß ich auch. Ich habe nur keine Ahnung, wie ich heruasfinden kann in welcher Spalte das Feld ist.
oDoc = thisComponent
oTables = oDoc.getTextTables
oTable = oTables.getByIndex(0)
oCell = oTable.getCellByPosition (0, 1) 'A2
oCellParagraphEnumeration = oCell.createEnumeration
while oCellParagraphEnumeration.hasMoreElements
oParagraph = oCellParagraphEnumeration.nextElement
oTextPortionEnumeration = oParagraph.createEnumeration
while oTextPortionEnumeration.hasMoreElements
oTextPortion = oTextPortionEnumeration.nextElement
if oTextPortion.getPropertyValue("TextPortionType") = "TextField" then
oTextField = oTextPortion.getPropertyValue("TextField")
'not sure what you are wanting to do here so this may be irrelevant
oTextFieldMaster = oTextField.getTextFieldMaster
msgbox "Field " & oTextFieldMaster.getPropertyValue("Name") & " = " & oTextFieldMaster.getPropertyValue("Content")
end if
wend
wend
Ich versuche in C# auf ein Writer-Dokument zuzugriffen und möchte das Makro in C# nachprogrammieren. Ich komme allerdings nur bis zum auswählen der Zelle. Aus dieser Zelle kann ich nur mittels GetText-Methode den Inhalte auslesen. Allerdings, komme ich dann nicht mehr weiter. Hat jemand eine Idee, wei man von dem Text auf die Benutzerfelder in der Zelle kommen kann?