Here I am going to demonstrate how to create and edit MS Word file through C#.Net

Example

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

Coding
Creating document
 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)
            {
                MessageBox.Show(ex.Message);
            }
        }

 

Editing document
        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);
                MessageBox.Show(ex.Message);
            }
           
        }
Screen shot
Before editing

After editing

  Modified On Nov-24-2017 04:19:09 AM
  1. Hi,

    you can also very easily C# create Word and edit Word files with this .NET Word component.

    Here is a sample code that shows how to create and C# edit Word file like the one in the article:

    // Create new empty document.

    var document = new DocumentModel();

    // Add a table to the document.

    document.Sections.Add(

        new Section(document,

            new Table(document,

                new TableRow(document,

                    new TableCell(document, new Paragraph(document, "ID")),

                    new TableCell(document)),

                new TableRow(document,

                    new TableCell(document, new Paragraph(document, "Name")),

                    new TableCell(document)),

                new TableRow(document,

                    new TableCell(document, new Paragraph(document, "Address")),

                    new TableCell(document)))));

    // Save the document to a file.

    document.Save("Document.docx", SaveOptions.DocxDefault);

    // Load a document from the file.

    document = DocumentModel.Load("Document.docx", LoadOptions.DocxDefault);

    // Retrieve a table from the document.

    var table = document.Sections[0].Blocks.Cast<Table>(0);

    // Edit the table second column - insert data.

    table.Rows[0].Cells[1].Blocks.Cast<Paragraph>(0).Inlines.Add(new Run(document, "1"));

    table.Rows[1].Cells[1].Blocks.Cast<Paragraph>(0).Inlines.Add(new Run(document, "Haider"));

    table.Rows[2].Cells[1].Blocks.Cast<Paragraph>(0).Inlines.Add(new Run(document, "Allahabad"));

    // Save the document to a file.

    document.Save("Document.docx", SaveOptions.DocxDefault);

  1. I've been searching everywhere for a control to add to my win form that is identical to this commenting control that has all the editing controls, how did you create it???  any help would be hugely appreciated

Leave Comment