Create Edit Word Document using C# VB.NET

Here I am going to demonstrate How to Create and Edit MS Word Document  using C# and VB.NET


To create or edit MS Word document, first of all we need to add two references to our project.
  • Microsoft.Office.Core
  • Microsoft.Office.Interop.Word




Creating document:

Code Behind:

C#


private void btnCreate_Click(object sender, EventArgs e)
{
    try
    {
        //creating object for missing value
        object missing = System.Reflection.Missing.Value;
        //object for end of file
        object endofdoc = "\\endofdoc";

        //creating instance of word application
        Microsoft.Office.Interop.Word._Application w = new Microsoft.Office.Interop.Word.Application();
        //creating instance of word document
        Microsoft.Office.Interop.Word._Document doc;
        //setting status of application to visible
        w.Visible = true;
        //creating new document
        doc = w.Documents.Add(ref missing, ref missing, ref missing, ref missing);
        //adding paragraph to document
        Microsoft.Office.Interop.Word.Paragraph para1;
        para1 = doc.Content.Paragraphs.Add(ref missing);
        object styleHeading1 = "Heading 1";
        para1.Range.set_Style(ref styleHeading1);
        para1.Range.Text = "Heading One";
        para1.Range.Font.Bold = 1;
        para1.Format.SpaceAfter = 24;
        para1.Range.InsertParagraphAfter();
        //creating second paragraph
        Microsoft.Office.Interop.Word.Paragraph para2;
        para2 = doc.Content.Paragraphs.Add(ref missing);
        para2.Range.Text = "Heading OneHeading OneHeading OneHeading OneHeading OneHeading OneHeading" + '\n' + "OneHeading OneHeading OneHeading OneHeading OneHeading OneHeading One";
        para2.Range.Font.Bold = 1;
        para2.Format.SpaceAfter = 24;
        para2.Range.InsertParagraphAfter();
    }
    catch (Exception ex)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "error", "javascript:;alert('" + ex.Message + "')");
    }
}


VB.NET

Private Sub btnCreate_Click(sender As Object, e As EventArgs)
        Try
            'creating object for missing value
            Dim missing As Object = System.Reflection.Missing.Value
            'object for end of file
            Dim endofdoc As Object = "\endofdoc"

            'creating instance of word application
            Dim w As Microsoft.Office.Interop.Word._Application = New Microsoft.Office.Interop.Word.Application()
            'creating instance of word document
            Dim doc As Microsoft.Office.Interop.Word._Document
            'setting status of application to visible
            w.Visible = True
            'creating new document
            doc = w.Documents.Add(missing, missing, missing, missing)
            'adding paragraph to document
            Dim para1 As Microsoft.Office.Interop.Word.Paragraph
            para1 = doc.Content.Paragraphs.Add(missing)
            Dim styleHeading1 As Object = "Heading 1"
            para1.Range.set_Style(styleHeading1)
            para1.Range.Text = "Heading One"
            para1.Range.Font.Bold = 1
            para1.Format.SpaceAfter = 24
            para1.Range.InsertParagraphAfter()
            'creating second paragraph
            Dim para2 As Microsoft.Office.Interop.Word.Paragraph
            para2 = doc.Content.Paragraphs.Add(missing)
            para2.Range.Text = "Heading OneHeading OneHeading OneHeading OneHeading OneHeading OneHeading" + ControlChars.Lf + "OneHeading OneHeading OneHeading OneHeading OneHeading OneHeading One"
            para2.Range.Font.Bold = 1
            para2.Format.SpaceAfter = 24
            para2.Range.InsertParagraphAfter()
        Catch ex As Exception
            ClientScript.RegisterStartupScript(Me.[GetType](), "error", "javascript:;alert('" + ex.Message + "')")
        End Try
    End Sub


Editing document:

Code Behind:

C#

        private void btnEdit_Click(object sender, EventArgs e)
        {
            //creating instance of word application
            Microsoft.Office.Interop.Word._Application w = new Microsoft.Office.Interop.Word.Application();
            object path = @"C:\table.doc";
            object read = "ReadWrite";
            object readOnly = false;
            object o = System.Reflection.Missing.Value;
            //opening document
            Microsoft.Office.Interop.Word._Document oDoc = w.Documents.Open(ref path, ref o, ref readOnly, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o);

            try
            {
                //loop for each paragraph in document
                foreach (Microsoft.Office.Interop.Word.Paragraph p in oDoc.Paragraphs)
                {
                    Microsoft.Office.Interop.Word.Range rng = p.Range;
                    Microsoft.Office.Interop.Word.Style styl = rng.get_Style() as Microsoft.Office.Interop.Word.Style;
                    //checking if document containg table
                    if ((bool)rng.get_Information(Microsoft.Office.Interop.Word.WdInformation.wdWithInTable)
                                        == true)
                    {
                        //loop for each cell in table
                        foreach (Microsoft.Office.Interop.Word.Cell c in rng.Cells)
                        {
                            if (rng.Cells.Count > 0)
                            {
                                //checking for desired field in table
                                if (c.Range.Text.ToString().Contains("ID"))
                                    //editing values in tables.
                                    c.Next.Range.Text = "1";
                                if (c.Range.Text.ToString().Contains("Name"))
                                    c.Next.Range.Text = "Haider";
                                if (c.Range.Text.ToString().Contains("Address"))
                                    c.Next.Range.Text = "Allahabad";
                            }
                        }
                        //saving document
                        oDoc.Save();
                    }
                }
                //closing document
                oDoc.Close(ref o, ref o, ref o);
            }
            catch (Exception ex)
            {
                oDoc.Close(ref o, ref o, ref o);
                ClientScript.RegisterStartupScript(this.GetType(), "error", "javascript:;alert('" + ex.Message + "')");
            }

        }


VB.NET

    Private Sub btnEdit_Click(sender As Object, e As EventArgs)
        'creating instance of word application
        Dim w As Microsoft.Office.Interop.Word._Application = New Microsoft.Office.Interop.Word.Application()
        Dim path As Object = "C:\table.doc"
        Dim read As Object = "ReadWrite"
        Dim [readOnly] As Object = False
        Dim o As Object = System.Reflection.Missing.Value
        'opening document
        Dim oDoc As Microsoft.Office.Interop.Word._Document = w.Documents.Open(path, o, [readOnly], o, o, o, _
         o, o, o, o, o, o, _
         o, o, o, o)

        Try
            'loop for each paragraph in document
            For Each p As Microsoft.Office.Interop.Word.Paragraph In oDoc.Paragraphs
                Dim rng As Microsoft.Office.Interop.Word.Range = p.Range
                Dim styl As Microsoft.Office.Interop.Word.Style = TryCast(rng.get_Style(), Microsoft.Office.Interop.Word.Style)
                'checking if document containg table
                If CBool(rng.get_Information(Microsoft.Office.Interop.Word.WdInformation.wdWithInTable)) = True Then
                    'loop for each cell in table
                    For Each c As Microsoft.Office.Interop.Word.Cell In rng.Cells
                        If rng.Cells.Count > 0 Then
                            'checking for desired field in table
                            If c.Range.Text.ToString().Contains("ID") Then
                                'editing values in tables.
                                c.[Next].Range.Text = "1"
                            End If
                            If c.Range.Text.ToString().Contains("Name") Then
                                c.[Next].Range.Text = "Haider"
                            End If
                            If c.Range.Text.ToString().Contains("Address") Then
                                c.[Next].Range.Text = "Allahabad"
                            End If
                        End If
                    Next
                    'saving document
                    oDoc.Save()
                End If
            Next
            'closing document
            oDoc.Close(o, o, o)
        Catch ex As Exception
            oDoc.Close(o, o, o)
            ClientScript.RegisterStartupScript(Me.[GetType](), "error", "javascript:;alert('" + ex.Message + "')")
        End Try

    End Sub


Before Editing:


After Editing:

Popular Posts