-Phoenix- 10 Posted December 8, 2005 Report Share Posted December 8, 2005 hallo, ich hab folgendes problem. ich hab ein visual basic programm geschrieben das daten in einem datagrid ausgibt. nun würde ich diese daten gerne in einer tabelle in word ausgeben lassen, hab nur leider keine ahnung danke schonmal Quote Link to comment
cablit 10 Posted December 8, 2005 Report Share Posted December 8, 2005 Hi Phoenix, das ist schon ein bisschen allgemein, ohne Code ist es recht schwierig das zu beantworten ... aber im Prinzip läuft es so: Du initialisierst dir ein Word.Application-Objekt und ein zugehöriges Word.Document-Objekt und überträgst die Daten vom DataGrid in eine (neue) Tabelle im Word.Document (je nach dem, ob die Datei neu erzeugt wird oder bereits besteht bzw. evtl. die Tabelle schon vorhanden ist, oder dynamisch erstellt werden muss). Grüße Quote Link to comment
-Phoenix- 10 Posted December 8, 2005 Author Report Share Posted December 8, 2005 das ding ist ja ich hab ja kein beispiel. ich hab im i-net auch keins gefunden. das mit dem aufruf von word und dem erstellen der tabelle hab ich ja schon ich hab nur keine ahnung wie ich die mit den werten des datagrids füllen kann. also ein beispiel dafür würde mir schon wahnsinnig helfen Quote Link to comment
cablit 10 Posted December 8, 2005 Report Share Posted December 8, 2005 Das ist im Prinzip nicht sehr schwer: With Word.Application .Selection.TypeText(Text:="Nr") .Selection.MoveRight(Unit:=WdUnits.wdCell) .Selection.Font.Bold = True .Selection.Font.Size = 14 .Selection.Font.Color = WdColor.wdColorBlue .Selection.TypeText(Text:="Nachname") .Selection.MoveRight(Unit:=WdUnits.wdCell) .Selection.Font.Bold = True .Selection.Font.Size = 14 .Selection.Font.Color = WdColor.wdColorBlue .Selection.TypeText(Text:="Vorname") 'usw. Quote Link to comment
-Phoenix- 10 Posted December 8, 2005 Author Report Share Posted December 8, 2005 sagt zB .Selection.TypeText(Text:="Vorname") aus welche spalte aus dem datagrid gelesen werden soll? Quote Link to comment
cablit 10 Posted December 8, 2005 Report Share Posted December 8, 2005 TypeText := "tippt" einen Text ... MoveRight(Unit:=WdUnits.wdCell) := "springt" zur nächsten Zelle (nach rechts) ... er beginnt bei der ersten Zelle der Tabelle Quote Link to comment
-Phoenix- 10 Posted December 8, 2005 Author Report Share Posted December 8, 2005 woher weiß der den das er sich die werte aus dem datagrid ziehen soll? Quote Link to comment
-Phoenix- 10 Posted December 8, 2005 Author Report Share Posted December 8, 2005 so sieht der quellcode aus Dim oTable As Word.Table Dim oWord As Word.Application oWord = New Word.Application Dim oDoc As Word.Document Dim wdUnits As Word.WdUnits oWord.Visible = True oDoc = oWord.Documents.Add(Template:="C:\dok2.doc", NewTemplate:=False) oDoc.FormFields.Item("Name").Range.Text = txtName.Text oDoc.FormFields.Item("PLZ").Range.Text = txtPLZ.Text oDoc.FormFields.Item("Ort").Range.Text = txtOrt.Text 'With Word.Application oWord.Selection.TypeText(Text:="Nr") oWord.Selection.MoveRight(Unit:=wdUnits.wdCell) oWord.Selection.Font.Bold = True oWord.Selection.Font.Size = 14 oWord.Selection.TypeText(Text:="Nachname") oWord.Selection.MoveRight(Unit:=WdUnits.wdCell) oWord.Selection.Font.Bold = True oWord.Selection.Font.Size = 14 oWord.Selection.TypeText(Text:="Vorname") Quote Link to comment
cablit 10 Posted December 8, 2005 Report Share Posted December 8, 2005 Im Prinzip machst das so: Dim oWord As Word.Application oWord = New Word.Application With oWord .Visible = True .Documents.Add(DocumentType:=WdNewDocumentType.wdNewBlankDocument) .ActiveDocument.Tables.Add(Range:=.Selection.Range, NumRows:= DataGrid1.VisibleRows, NumColumns:= DataGrid1.VisibleCols) .Selection.TypeText(Text:=DataGrid1.Columns("ErsterSpaltenName")) .Selection.MoveRight(Unit:=WdUnits.wdCell) .Selection.TypeText(Text:="DataGrid1.Columns("ZweiterSpaltenName")) 'usw. bis du den kompletten Kopf befüllt hast --> mit MoveRight immer zur nächsten Zelle springen 'danach gehst du weiter Zeile für Zeile durch das DataGrid und überträgst die Daten End With Quote Link to comment
-Phoenix- 10 Posted December 8, 2005 Author Report Share Posted December 8, 2005 VisibleCols, VisibleRows,Columns wird mir als Fehler angezeigt, da das kein Member ist von System.Windows.Forms.Datagrid Quote Link to comment
-Phoenix- 10 Posted December 8, 2005 Author Report Share Posted December 8, 2005 kann ich das durch was ersetzten oder muss ich dem noch was über imports hinzufügen? Quote Link to comment
cablit 10 Posted December 8, 2005 Report Share Posted December 8, 2005 Mir dünkt, du benutzt VB.NET ... die Info wäre ein Stück früher durchaus von Nutzen gewesen ;) Kann ich leider erst heute abend antworten, da ich momentan an keine VB.NET-IDE ran komme. Quote Link to comment
-Phoenix- 10 Posted December 8, 2005 Author Report Share Posted December 8, 2005 jo nutze VB.Net dann dank dir schon mal heute abend reicht ;-) Quote Link to comment
-Phoenix- 10 Posted December 8, 2005 Author Report Share Posted December 8, 2005 :( Quote Link to comment
-Phoenix- 10 Posted December 11, 2005 Author Report Share Posted December 11, 2005 hat vllt noch wer ne idee wie ich das schaffen kann? Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.