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.
Creating document:
Code Behind:
C#
VB.NET
Editing document:
Code Behind:
C#
VB.NET
Before Editing:
After Editing:
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: