Na vandaag wat aangeplaard te hebben met ons project van SE22 hebben we een stukje code gefixt waarmee je een Word-document (.doc) kunt maken.

Vereisten zijn:

  • Een COM-referentie naar Microsoft Word Object Library (Project -> Add Reference)
  • 2 regels in de directives van het form of de class waarin je het wilt gebruiken:
    using Microsoft.Office.Core;
    using Microsoft.Office.Interop.Word;
    
  • Dan rest verder natuurlijk de code:

    public void Exporteren()
    {
    object missing = System.Reflection.Missing.Value;
    object Visible = true;
    object start1 = 0;
    object end1 = 0;
    
    ApplicationClass WordApp = new ApplicationClass();
    Document adoc = WordApp.Documents.Add(ref missing, ref missing, ref missing, ref missing);
    Range rng = adoc.Range(ref start1, ref missing);
    
    try
    {
    rng.Font.Name = "Georgia";
    rng.Font.Size = 12;
    rng.InsertAfter("Test!");
    adoc.SaveAs(ref filename, ref missing, ref missing, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
    WordApp.Visible = true;
    //adoc.Close(ref missing, ref missing, ref missing);
    //WordApp.Quit(ref missing, ref missing, ref missing);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }
    

    In deze code is vrij vaak het object missing gebruikt. Dit is omdat bijvoorbeeld adoc.SaveAs() vrij veel argumenten nodig heeft die wij niet direct nodig hadden.
    Verder spreekt de code eigenlijk voor zichzelf! :)