Parsi Coders
ویرایش فایل ورد - نسخه قابل چاپ

+- Parsi Coders (http://parsicoders.com)
+-- انجمن: Software Development Programming (http://parsicoders.com/forumdisplay.php?fid=37)
+--- انجمن: C# Programming (http://parsicoders.com/forumdisplay.php?fid=55)
+--- موضوع: ویرایش فایل ورد (/showthread.php?tid=2229)



ویرایش فایل ورد - Ghoghnus - 05-05-2012

سـلام
دوستان چطوری میشه یه فایل ورد را تو برنامه بازش کنم یه ویرایش روش انجام بدم ودوباره ببندمش؟



تو گوگل سرچ کردم چیز بدرد خوری پیدا نکردم متاسفانه


RE: ویرایش فایل ورد - Amin_Mansouri - 05-05-2012

درود

سمپل به زبان وی دات نت و سی شارپ


کد:
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