Read Microsoft Word Document File by using C#
This is an efficient way through which we can read Microsoft Word Document file (or .docx extension file) by using C#.Net code.
Here I am making a window form application to read the text of MS-Word file (Not image) and showing the ms-word text into windows form richtextbox control.
Let’s see the brief demonstration of reading text from an ms-word file in c#.
Step 1: To read MS-Word file write the following code on reading Button click event.
/// <summary>
///This method read the document and writes into richtextbox control
/// </summary>
private voidbtn_Read_Click(objectsender, EventArgse)
{
// call the method to read ms-word document
ReadMsWord();
}
/// <summary>
/// Read ms-word file
///</summary>
publicvoidReadMsWord()
{
// variable to store file path
stringfilePath=null;
// open dialog box to select file
OpenFileDialogfile= new OpenFileDialog();
// dilog box title name
file.Title="Word File";
// set initial directory of computer system
file.InitialDirectory= "c:\\";
// set restore directory
file.RestoreDirectory= true;
// execute if block when dialog result box click ok button
if (file.ShowDialog() ==DialogResult.OK)
{
// store selected file path
filePath=file.FileName.ToString();
}
try
{
// create word application
Microsoft.Office.Interop.Word.Applicationword=new Microsoft.Office.Interop.Word.ApplicationClass();
// create object of missing value
objectmiss= System.Reflection.Missing.Value;
// create object of selected file path
objectpath=filePath;
// set file path mode
objectreadOnly= false;
// open document
Microsoft.Office.Interop.Word.Document docs=word.Documents.Open(refpath, refmiss, refreadOnly, refmiss, refmiss, refmiss, refmiss, refmiss,refmiss, refmiss, refmiss, refmiss, refmiss, refmiss, refmiss, refmiss);
// select whole data from active window document
docs.ActiveWindow.Selection.WholeStory();
// handover the data to cllipboard
docs.ActiveWindow.Selection.Copy();
// clipboard create reference of idataobject interface which transfer the data
IDataObjectdata= Clipboard.GetDataObject();
//set data into richtextbox control in text format
richTextBox2.Text=data.GetData(DataFormats.Text).ToString();
// read bitmap image from clipboard with help of iddataobject interface
Imageimg= (Image)data.GetData(DataFormats.Bitmap);
// close the document
docs.Close(refmiss, refmiss, refmiss);
}
catch (Exceptionex) { MessageBox.Show(ex.ToString()); }
}
Step 2: After writing the above code debug the program and click on the Read button
When you click on the Read button then a file dialog box will appear to select an ms-word file, after select a file then press the Open button.
After clicked the open button the following output will appear as follows.
Parthiban K
08-Aug-2016As you have mentioned above code is working fine but I need to read content along with those font format like bold, font color, size, background color, track changes etc.., by using c#. Is there any possible way to achieve that? Please let me know if possible.
Warm regards,
Parthiban K
Patel Ronak
05-Jan-2015James Howard
01-Mar-2012Hi,
nice article!
For ones that are unable to use .NET Word automation, try this C# / VB.NET Word library that doesn't require Word application.
Here is a sample C# read Word:
// Load a document.
DocumentModel document = DocumentModel.Load("Document.docx", DocxLoadOptions.DocxDefault);
// Iterate over all paragraphs in the document.
foreach (Paragraph paragraph in document.GetChildElements(true, ElementType.Paragraph))
{
// Iterate over all runs in the paragraph and write their text to console.
foreach (Run run in paragraph.GetChildElements(true, ElementType.Run))
Console.Write(run.Text);
Console.WriteLine();
}
Anonymous User
24-Sep-2011Chris Anderson
20-Sep-2011