View Single Post
 
Old 04-18-2014, 04:17 AM
macropod's Avatar
macropod macropod is offline Windows 7 32bit Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,383
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

Again, bearing in mind I'm not a C# programmer, you might put a bookmark where you want the output to go, then use something like:
Code:
Private void btnExportWord_Click_1(Object sender, EventArgs e)
{
  Object oMissing = Missing.Value;
  Word.Application oWord = New Word.Application();
  Word.Document oWordDoc = New Word.Document();
  oWord.Visible = false;
  Object oTemplatePath = @"C:\test\MyXMLTemplate.dotx";
  oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);
  Using oWordDoc.Bookmarks("BookmarkName").Range;
  {
    For (int i = 0; i < treeViewXMLFiles.Nodes[0].Nodes.Count; i++)
    {
      .InsertParagraphAfter;
      .InsertAfter treeViewXMLFiles.Nodes[0].Nodes[i].Text;
      .InsertParagraphAfter;
      .InsertAfter treeViewXMLFiles.Nodes[0].Nodes[i].Nodes[0].Text;
      .InsertParagraphAfter;
      .InsertAfter treeViewXMLFiles.Nodes[0].Nodes[i].Nodes[1].Text;
      .InsertParagraphAfter;
      .InsertAfter treeViewXMLFiles.Nodes[0].Nodes[i].Nodes[2].Text; 
      .InsertParagraphAfter;
    }
  }
  Object oSaveAsFile = (Object)@"C:\test\FINISHED_XML_Template.doc";
  oWordDoc.SaveAs(ref oSaveAsFile, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
  oWordDoc.Close(False, ref oMissing, ref oMissing);
  oWord.Quit(ref oMissing, ref oMissing, ref oMissing);
}
or:
Code:
Private void btnExportWord_Click_1(Object sender, EventArgs e)
{
  Object oMissing = Missing.Value;
  Word.Application oWord = New Word.Application();
  Word.Document oWordDoc = New Word.Document();
  oWord.Visible = false;
  Object oTemplatePath = @"C:\test\MyXMLTemplate.dotx";
  oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);
  Var Dest=oWordDoc.Bookmarks("BookmarkName").Range;
  {
    For (int i = 0; i < treeViewXMLFiles.Nodes[0].Nodes.Count; i++)
    {
      Dest.InsertParagraphAfter;
      Dest.InsertAfter treeViewXMLFiles.Nodes[0].Nodes[i].Text;
      Dest.InsertParagraphAfter;
      Dest.InsertAfter treeViewXMLFiles.Nodes[0].Nodes[i].Nodes[0].Text;
      Dest.InsertParagraphAfter;
      Dest.InsertAfter treeViewXMLFiles.Nodes[0].Nodes[i].Nodes[1].Text;
      Dest.InsertParagraphAfter;
      Dest.InsertAfter treeViewXMLFiles.Nodes[0].Nodes[i].Nodes[2].Text; 
      Dest.InsertParagraphAfter;
    }
  }
  Object oSaveAsFile = (Object)@"C:\test\FINISHED_XML_Template.doc";
  oWordDoc.SaveAs(ref oSaveAsFile, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
  oWordDoc.Close(False, ref oMissing, ref oMissing);
  oWord.Quit(ref oMissing, ref oMissing, ref oMissing);
}
Since I'm not sure of the C# syntax, I'm attaching a document with some VBA code to demonstrate how you can populate between the paragraphs by using a bookmark. In C# I believe the equivalent of a VBA 'With ... End With' construct is 'Using' or a Var declaration.
Attached Files
File Type: doc Populate Document.doc (44.5 KB, 11 views)
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote