Autor: Yang Zhongxun Hauptfach: Entwicklung und Anwendung von Computersoftware Sprachkenntnisse: TOFEL633 GRE2140
E-Mail: [email protected]
Bei der tatsächlichen Entwicklung des Mis-Systems müssen wir manchmal die Berichtsdaten auf der aktuellen Seite im Format eines Word-Dokuments auf den lokalen Computer herunterladen. Aber manchmal müssen wir einige Einstellungen für das Format des heruntergeladenen Word-Dokuments vornehmen, wie z. B. Titelfarbe, Schriftgröße, Wortabstand usw. In diesem Fall müssen wir die mit Word gelieferte Makrofunktion verwenden.
Beispielsweise möchten wir den Titel dieses Berichts im folgenden Format in einem Word-Dokument anzeigen: 14-Punkt-Schriftart, fett und zentriert. Zuerst müssen wir den entsprechenden Makrobefehl in Word aufzeichnen. Öffnen Sie Word, erstellen Sie ein neues Dokument, geben Sie manuell eine Textzeile ein, wählen Sie dann den Befehl „Extras->Makro->Neues Makro aufzeichnen“, geben Sie dem neuen Makro einen Namen wie „Makro1“ und führen Sie die oben genannten Aktionen aus (Größe 14, fett, zentriert). -aligned) speichert Word diese Aktionen automatisch als entsprechende Vbscript-Befehle. Wählen Sie dann Extras->Makro->Makrobefehl, wählen Sie das Makro Makro1 aus, das wir gerade definiert haben, und Sie können seinen Inhalt anzeigen. In diesem Beispiel lautet der von uns gespeicherte Makrobefehl wie folgt:
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 'Mittige Ausrichtung
Selection.Font.Bold = wdToggle 'Fettanzeige
Selection.Font.Size = 14 '
Da die Skriptsprache des Makrobefehls Vbscript ist, können wir die obige Anweisung in VB verwenden, ohne Änderungen vorzunehmen. Auf diese Weise können wir den folgenden VB-Code schreiben, um die von uns benötigten Funktionen zu erreichen. Der Code lautet wie folgt:
WdApp.Selection.Font.Bold = wdToggle 'Fettanzeige
WdApp.Selection.Font.Size = Schriftart in der Größe 14 '14
WdApp.Selection.TypeText ("Berichtstitel") 'Berichtstitel
WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter 'In der Mitte ausrichten
WdApp.Selection.Font.Bold = wdToggle 'Fettdruck aufheben.
Wenn wir eine andere Verarbeitung am Word-Dokument durchführen möchten, wiederholen Sie einfach die obigen Schritte. Im Folgenden finden Sie ein vollständiges Beispiel meiner Verarbeitung von Word-Dokumenten:
Private Function SaveAsWord(ByRef MyRecord As Recordset, ByVal DocFileName As String, ByRef OutMessage As String) As Integer
'************************************************** * *********************
'
'Beschreibung: Speichern Sie die Daten im Datensatz als DOC-Datei
'
'Parameter:
'
'MyRecord-Datensatz
'DocFileName WORD-Dateiname (kein Pfad, siehe Instanzvariable sPath für den Pfad)
'Informationen zum OutMessage-Vorgang zurückgeben
'
'Rückgabe: 1 Erfolg - 1 Misserfolg
'
'************************************************** * *********************
„Initialisieren Sie die Word-Anwendung
ähm.Klar
Bei Fehler Gehe zu Err_All
Dimmen Sie WdApp als Word.Application
Set WdApp = CreateObject("Word.Application")
'Daten einfügen
Dim colloop As Integer 'Spaltennummer
Dim rowloop As Integer 'Zeilennummer
Dim colMax As Integer 'Anzahl der Spalten
Dim rowMax As Integer 'Anzahl der Zeilen
Dim wdcell As Integer 'Breite
Dim UnitEnd As Integer 'Endpunkt abfangen
Dim UnitName As String 'Einheitsname
Dim BbDate As String 'Berichtszeitraum
wdcell=12
colMax = MyRecord.Fields.count
rowMax = MyRecord.RecordCount
WdApp.Documents.Add
„Holen Sie sich die Berichtseinheit
UnitEnd = InStr(sBBDetail, "period")
UnitName = Mid(sBBDetail, 1, UnitEnd - 2)
BbDate = Mid(sBBDetail, UnitEnd, Len(sBBDetail))
Wenn MyRecord.Fields.count >= 10, dann
WdApp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
Anders
WdApp.ActiveDocument.PageSetup.Orientation = wdOrientPortrait
Ende wenn
'Name des Berichts
WdApp.Selection.Font.Bold = wdToggle
WdApp.Selection.Font.Size = 14
WdApp.Selection.TypeText (sbbmc)
WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter
WdApp.Selection.Font.Bold = wdToggle
WdApp.Selection.TypeParagraph
'Name der Berichtseinheit
WdApp.Selection.Font.color = wdColorBlack
WdApp.Selection.Font.Size = 11
WdApp.Selection.TypeText(UnitName)
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
WdApp.Selection.TypeParagraph
'Berichtszeitraum
WdApp.Selection.TypeText(BbDate)
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
WdApp.Selection.TypeParagraph
WdApp.Selection.TypeParagraph
'Spaltenüberschriften generieren
'wdApp.Selection.HomeKey wdLine, wdExtend
'dApp.Selection.Font.Bold = wdToggle
WdApp.ActiveDocument.Tables.Add WdApp.Selection.Range, rowMax, colMax
Dim i als Ganzzahl
Tun
Für Colloop = 0 bis ColMax - 1
WdApp.Selection.Font.Size = 9
Wenn i = 0, dann
'Der Titel in der Tabelle wird fett angezeigt
WdApp.Selection.Font.Bold = wdToggle
'Setzen Sie die Hintergrundfarbe der Tabellentitelzeile auf Grau mit einer Graustufe von 30
Mit WdApp.Selection.Cells
Mit .Shading
.Texture = wdTextureNone
.ForegroundPatternColor = wdColorAutomatic
.BackgroundPatternColor = wdColorGray30
Ende mit
Ende mit
Ende wenn
„Die letzte Zeile ist rechtsbündig und der Rest ist linksbündig.“
Wenn i > 0, dann
Wenn MyRecord.Fields.Item(colloop).Name = „ZBMC“ oder MyRecord.Fields.Item(colloop).Name = „Indikatorname“, dann
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
Anders
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
Ende wenn
Ende wenn
Wenn i = 0 und (MyRecord.Fields.Item(colloop).Name = „SXH“ oder MyRecord.Fields.Item(colloop).Name = „Sequenznummer“), dann
WdApp.Selection.TypeText („Seriennummer“)
Anders
WdApp.Selection.TypeText (CStr(MyRecord.Fields.Item(colloop).value))
Ende wenn
Wenn (i <> rowMax - 1 Or (i = rowMax - 1 And colloop < colMax - 1)) Dann
WdApp.Selection.MoveRight (wdcell)
Ende wenn
Nächste
ich = ich + 1
MyRecord.MoveNext
Schleife bis MyRecord.EOF
WdApp.ActiveDocument.SaveAs DocFileName, 0, False, "", True, "", False, False, False, False, False
WdApp.Quit
SaveAsWord = 1
Exit-Funktion
Err_All:
Stellen Sie WdApp = Nothing ein
SaveAsWord = -1
OutMessage = err.Description
Exit-Funktion
Endfunktion
Okay, ich glaube, Sie haben bisher ein gewisses Verständnis für die Verwendung von Word-Makrobefehlen zum Entwickeln von ASP-Komponenten in VB. Solange Sie es häufiger verwenden, werden Sie sich schnell damit vertraut machen.