none
RTF in eine Excel zelle schreiben. RRS feed

  • Frage

  • Hallo,

    ich habe ein Excel- Plugin mit C# geschrieben, wo man in ein Formular daten eingibt und dann daraus ein Excel Tabellenblatt erstellt wird. Nun soll auch ein Text eingegeben werden. Der Text soll in eine RichTextBox eingegeben werden und dann mit der gleichen Formatierung in das Tabellenblatt übernommen werden.

    Ist das möglich.

    Dienstag, 21. Februar 2012 13:10

Alle Antworten

  • Der direkte Weg über das Range Objekt ist schwierig weil es keine RTF Eigenschaft hat. D.h. Du müsstest zuerst den Text eintragen und nachträglich formatieren.

    Sub Test()
      Range("A1") = "RotFett"
      Range("A1").Characters(1, 3).Font.Color = RGB(255, 0, 0)
      Range("A1").Characters(4, 4).Font.Bold = True
    End Sub

    Einfacher ist es über die Zwischenablage, kopiere Deinen formatierten Text in diese und dann selektierst Du die Zelle und nimmst das Sheet Objekt zum Einfügen.

    Sub Test()
      Range("A1").Select
      ActiveSheet.Paste
    End Sub

    Die Paste Methode überträgt auch die Formatierungen des RTF in die Zelle. Zum manuellen Testen: Kopiere einen formatierten Text von Word nach Excel.

    Andreas.

    Mittwoch, 22. Februar 2012 11:24
  • Leider habe ich mit beidem so meine Probleme, da ich den Text auch in einer XML Datei zwischenspeichern möchte, so dass ich ihn zu einem späteren Zeitpunkt wieder gensauso ausgeben kann.

    Das Fenster mit der RichTextBox ist zum Zeitpunkt der erzeugung des Excel- Blattes normalerweise nicht geöffnet. So kann ich also kein direktes Copy-Paste machen.

    Das heist, dass ich den Text aus der RichTextBox per "RichTextBox.rtf" auslese, in die Datenbank übertrage und dann zu einem späteren Zeitpunkt den Text wieder aus der Datenbank auslese und diese dann in das Excelblatt übertrage.

    OK es ist natürlich möglich für kurze Zeit ein Formular mit einer RichTextBox zu öffnen um dann ein Copy-Paste zu machen. Aber elegant ist das nicht.

    Hat sich da Microsoft nichts sinnvolleres ausgedacht?

    Freitag, 24. Februar 2012 10:54
  • Hallo Sydney,

    man koennte ein Rich Text Box Control 6.0 ( http://activex.microsoft.com/controls/vb6/richtx32.cab )  verwenden. Einfach das Kontrol in der Zelle einfuegen und anpassen und dann die RTF Datei in das Kontrol laden (RichTextBox.LoadFile)

    Viele Gruesse,

    Bogdan


    Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln.

    Montag, 27. Februar 2012 09:31
  • Hallo Sydney,
    Wäre es machbar, dass Du eine kurze Rückmeldung gibst, ob die Antworten Dir geholfen haben?
    VG/Bogdan

    Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln.

    Dienstag, 6. März 2012 08:26
  • Leider läst sich die Rich Text Box nicht einfügen. Ich erhalte hier immer die Fehlermeldung "Objekt kann nicht eingefügt werden". Daher konnte ich nicht testen ob es mit deinem Vorschlag gegangen wäre.

    mfg

    Sydney

    Dienstag, 6. März 2012 11:32