Word für Dummies

Einbindung von Office-Komponenten wie Word, Excel usw.

Moderator: Moderatoren

Word für Dummies

Beitragvon Benz » Mi, 30. Okt 2013 16:21

Hi, nach längerem Suchen sowohl in der API-Referenz von Microsoft wie auch im Forum, bin ich leider nicht fündig geworden.
Und zwar suche ich die folgenden Befehle, die sich wahrscheinlich auseinander relativ schnell ergeben, ich weiß leider nur nicht wie die Objekte heißen:

- Schreiben von Text in Word
- Text aus Word herausholen
- Text in Word färben
- Text formatieren(fett,unterstrichen, kursiv,Schriftgröße, Schriftart,..)

Könnte ihr mir da einfach nur die Befehle hinklatschen?
Das wäre sehr freundlich :)
Was die genau machen finde ich dann schon selbst raus :wink:
Benz
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 413
Registriert: Mo, 30. Mai 2011 14:06

Re: Word für Dummies

Beitragvon Martin Altmann » Mi, 30. Okt 2013 16:32

Moin,
ich nutze den (einfacheren) Weg und schreibe RTF-Dateien - sind ja einfache Textdateien.
Man kann es sich einfach machen, indem man eine entsprechend aufbereitete Worddatei als RTF speichert und sich dann die Inhalte in einem Texteditor anschaut und als Grundlage nimmt.
Ansonsten sei empfohlen: http://de.wikipedia.org/wiki/Rich_Text_Format und hier die links am Ende (Spezifiaktionen).

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 12851
Registriert: Fr, 23. Sep 2005 3:58
Wohnort: Berlin

Re: Word für Dummies

Beitragvon Tom » Mi, 30. Okt 2013 16:41

Ich mache das so ähnlich wie Martin, gehe aber noch einen Schritt weiter. Wir verwenden "TX Text Control", das u.a. das Laden beliebiger Word-Dokumente und deren Konvertierung in beliebige andere Formate unterstützt. Dadurch gibt es keinerlei Versionskonflikte (denn Word verhält sich nicht immer gleich), und außerdem kann man "rock bottom" im RTF-Text operieren, was erstens viel einfacher ist und zweitens auch schneller geht. RTF ist vergleichsweise übersichtlich, je nachdem, was man an Funktionalitäten unterstützen will. Die o.g. Operationen wären relativ simpel umzusetzen.

Knifflig wird es - übrigens in allen Varianten -, wenn findige Benutzer Attribute innerhalb eines Wortes ändern: Brausepaul. Das findet aber auch Word nicht mehr als Wort. :wink:
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6695
Registriert: Do, 22. Sep 2005 22:11
Wohnort: Berlin

Re: Word für Dummies

Beitragvon Werner_Bayern » Mi, 30. Okt 2013 23:52

Tom hat geschrieben:Knifflig wird es - übrigens in allen Varianten -, wenn findige Benutzer Attribute innerhalb eines Wortes ändern: Brausepaul. Das findet aber auch Word nicht mehr als Wort. :wink:


Code: Alles auswählen
oWord:documents:open(cWordDatei, .f., .t.)    // keine Konvertierungen anzeigen, readonly
oDoc := oWord:ActiveDocument:content
if oDoc:find:Execute(cText)
    ? cText, "gefunden"
endif


Einfach jetzt so geschrieben, müsste aber funktionieren.
es grüßt euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1215
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Word für Dummies

Beitragvon brandelh » Do, 31. Okt 2013 0:48

Im Zweifelsfalle immer die mitgelieferten Beispiele durchforsten ;-)

:arrow: ...\XPPW32\source\samples\activex\msword
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13332
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Word für Dummies

Beitragvon Benz » Do, 31. Okt 2013 13:15

Danke für eure ganzen Tips, hilft wirklich ungemein!
Ich würde das aber schon wenn möglich alles über die COM machen.
Das Beispiel mit den Bookmarks ist auch gut, das war eins der Dinge, die ich gesucht habe.
Aber das direkte Schreiben in Word ist damit ja leider noch nicht abgedeckt oder?
Ich meine, Word ersetzt in dem Beispiel ja nur die Bookmarks durch anderen Text. Kann man nicht in ein leeres Dokument auch irgendetwas schreiben, ohne bereits vorhandenes (was bei einem leeren Dokument ja nicht der Fall ist)
ersetzen zu müssen?
Benz
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 413
Registriert: Mo, 30. Mai 2011 14:06

Re: Word für Dummies

Beitragvon Werner_Bayern » Do, 31. Okt 2013 13:31

Benz hat geschrieben:Kann man nicht in ein leeres Dokument auch irgendetwas schreiben, ohne bereits vorhandenes (was bei einem leeren Dokument ja nicht der Fall ist)
ersetzen zu müssen?


Code: Alles auswählen
cText := "Das in Word einfügen..."

oWord := CreateObject("Word.Application")
IF Empty( oWord )
   confirmbox(, "Microsoft Word ist nicht installiert!" )
   return NIL
ENDIF
oWord := oWord:dynamicCast(ActiveXObject())
oWord:Visible := .t.
oWord:documents:open(cWordDatei, .f., .f.)
oWord:Selection:Text := cText
oWord:Application:Activate()
oWord:Destroy()
es grüßt euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1215
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Word für Dummies

Beitragvon azzo » Sa, 02. Nov 2013 9:06

Hallo,
Ich poste hier mal einen alten Forumsbeitrag im FW Forum von mir.
mfg
Otto

In case you don’t know that Word 2007 files are pure xml files and you can manipulate direct those files I would like to mention this.

I did some tests with the new Word Open XML format and have
"search replace" working.

This is what I did:
1. rename from docx to zip
2. unpack
3. Seek and replace in the document.xml for placeholders
4. Zip again the files and rename back to docx.
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 206
Registriert: So, 28. Mär 2010 18:21

Re: Word für Dummies

Beitragvon Benz » So, 03. Nov 2013 20:06

Ich hab jetzt mal ne WHILE gemacht, mit der in
jeder Zeile ein neuer Eintrag erstellt wird:

Code: Alles auswählen
oWord:Selection:Text := "Text mit Variablen" + chr(13)
oWord:Selection:Collapse(0)


Ich glaube es war Collapse, was ich benutzt hatte, jedenfalls hat es soweit funktioniert.
Das Problem bei Selection ist, dass der eingefügte Text markiert wird. Das habe ich umgangen, indem ich Collapse(0) benutze.

Mit dem Code jetzt habe ich allerdings 2 Probleme:

1. Je nach Wordeinstellung wird dadurch ein Absatz erstellt. Keine einfache Leerzeile, sondern ein Absatz, also im Prinzip 2 Leerzeilen.
2. Meine Anwendung verlangt es, dass ich viele Seiten damit erstellen kann. In einem Fall waren es 170.
Dann bekomme ich aber immer Fehlermeldungen nach diesem Motto:

" Es liegen zu viele Rechtschreibfehler vor. Bitte benutzen Sie die Rechtschreibprüfung zur Korrektur." Und die kommt bei 170 Seiten ca. 3 Mal.
Kann man die irgendwie unterdrücken?
Benz
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 413
Registriert: Mo, 30. Mai 2011 14:06

Re: Word für Dummies

Beitragvon AUGE_OHR » Mo, 04. Nov 2013 5:09

Benz hat geschrieben:Mit dem Code jetzt habe ich allerdings 2 Probleme:
ich fürchte es ist erst der Anfang ...
sicherlich kann man per activeX einiges machen aber willst du VBA lernen oder mit deiner Arbeit voran kommen ?

ich meine damit wenn der Kunde eine "integrierte" Textverarbeitung möchte greife ich doch lieber zu einem 3-PP Tool wie TxControl.
wenn der Kunden seine Rechnungen "Layout"(en) will dann versuche es mal mit List & Label.

beide bieten dir auch Events und Methoden für die Rückmeldungen ( was der User macht ) denn die beachtest du wohl noch nicht.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10211
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg


Zurück zu MS Office

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste