??? ???? Microsoft Word ?????? ????? ???? ???????? Visual C#

?????? ????????? ?????? ?????????
???? ???????: 316384 - ??? ???????? ???? ????? ????? ??? ???????.
?????? ??? ????? Microsoft Visual Basic .NET ?? ??? ???????? ???? 316383.
?????? ??? ????? Microsoft Visual Basic 6.0 ?? ??? ???????? ???? 313193.
????? ???? | ?? ????

??????

???? ??? ??????? ???? ????? ??? ????? ????? ????? ???? ?? Microsoft Word ???????? ??????? ?? Microsoft Visual C# 2005 ?? Microsoft Visual C# .NET.

??? ?????

???? ????? ???????? ???????? ?? ??? ??????? ????? ?????? ??? ???:
  • ????? ??????? ?? ???? ????????.
  • ?????? ?? ????? ???????? ???????? ??? ?????.
  • ????? ????? ??????? ??????? ????? ??????? ?????????.
  • ????? ?????.
?????? ????? Word ???? ???????? ??????? ?? Visual C# 2005 ?? Visual C# .NET ???? ??????? ???????:
  1. ??? ????? Microsoft Visual Studio 2005 ?? Microsoft Visual Studio .NET.
  2. ?? ??????? ???? ???? ??? ???? ?? ???? ??? ???????. ??? ????? Project ? ???? ??? Visual C# ?????? ?? ???? ??? ????? Windows ??? ?????. ??? ????? Form1 ???? ???????.

    ?????? ?? Visual Studio 2005 ? ???? ??? Visual C# ????? ?? Visual C# ????????.
  3. ????? ???? ??? ????? ?????? Microsoft Word. ?????? ????? ???? ??????? ???????:
    1. ?? ??????? ??????? ???? ??? ????? ????.
    2. ??? ????? ??????? COM ????? ???? ????? ?????? Microsoft Word ?? ???? ??? ?????.

      ?????? ?? Visual Studio 2005 ? ?? ??? ???? ??? ???? ??? ?????.
      ?????? ????? Microsoft Office 2003 "????????? Interop ????????" (PIAs). ?? ????? Microsoft Office XP PIAs ???? ???? ???????. ????? ?? ????????? ??? Office XP PIAs ???? ??? ??? ??????? ?????? ?????? ?? "????? ??????? ?? Microsoft:
      328912INFO: Microsoft Office XP PIAs ???????? ???????
    3. ???? ??? ????? ?? ???? ?????? ????? ????? ????? ?????????. ??? ??? ??????? ?????? wrappers ???????? ???? ?????? ???? ??? "???".
  4. ?? ??????? ???? ??? Toolbox ???? ???? ??????? ?? ?? ?????? ?? ??? Form1.
  5. ???? ????? ??????? ??? Button1. ???? ???? ????????? ???????? ???????.
  6. ?? ???? ????????? ???????? ??????? ????????? ????????
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    ?? ???????: button1_Click(object sender, System.EventArgs e) ????? ????
    private void button1_Click(object sender, System.EventArgs e)
    {
    	object oMissing = System.Reflection.Missing.Value;
    	object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */ 
    
    	//Start Word and create a new document.
    	Word._Application oWord;
    	Word._Document oDoc;
    	oWord = new Word.Application();
    	oWord.Visible = true;
    	oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
    		ref oMissing, ref oMissing);
    
    	//Insert a paragraph at the beginning of the document.
    	Word.Paragraph oPara1;
    	oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
    	oPara1.Range.Text = "Heading 1";
    	oPara1.Range.Font.Bold = 1;
    	oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.
    	oPara1.Range.InsertParagraphAfter();
    
    	//Insert a paragraph at the end of the document.
    	Word.Paragraph oPara2;
    	object oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oPara2 = oDoc.Content.Paragraphs.Add(ref oRng);
    	oPara2.Range.Text = "Heading 2";
    	oPara2.Format.SpaceAfter = 6;
    	oPara2.Range.InsertParagraphAfter();
    
    	//Insert another paragraph.
    	Word.Paragraph oPara3;
    	oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oPara3 = oDoc.Content.Paragraphs.Add(ref oRng);
    	oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:";
    	oPara3.Range.Font.Bold = 0;
    	oPara3.Format.SpaceAfter = 24;
    	oPara3.Range.InsertParagraphAfter();
    
    	//Insert a 3 x 5 table, fill it with data, and make the first row
    	//bold and italic.
    	Word.Table oTable;
    	Word.Range wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oTable = oDoc.Tables.Add(wrdRng, 3, 5, ref oMissing, ref oMissing);
    	oTable.Range.ParagraphFormat.SpaceAfter = 6;
    	int r, c;
    	string strText;
    	for(r = 1; r <= 3; r++)
    		for(c = 1; c <= 5; c++)
    		{
    			strText = "r" + r + "c" + c;
    			oTable.Cell(r, c).Range.Text = strText;
    		}
    	oTable.Rows[1].Range.Font.Bold = 1;
    	oTable.Rows[1].Range.Font.Italic = 1;
    
    	//Add some text after the table.
    	Word.Paragraph oPara4;
    	oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oPara4 = oDoc.Content.Paragraphs.Add(ref oRng);
    	oPara4.Range.InsertParagraphBefore();
    	oPara4.Range.Text = "And here's another table:";
    	oPara4.Format.SpaceAfter = 24;
    	oPara4.Range.InsertParagraphAfter();
    
    	//Insert a 5 x 2 table, fill it with data, and change the column widths.
    	wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oTable = oDoc.Tables.Add(wrdRng, 5, 2, ref oMissing, ref oMissing);
    	oTable.Range.ParagraphFormat.SpaceAfter = 6;
    	for(r = 1; r <= 5; r++)
    		for(c = 1; c <= 2; c++)
    		{
    			strText = "r" + r + "c" + c;
    			oTable.Cell(r, c).Range.Text = strText;
    		}
    	oTable.Columns[1].Width = oWord.InchesToPoints(2); //Change width of columns 1 & 2
    	oTable.Columns[2].Width = oWord.InchesToPoints(3);
    
    	//Keep inserting text. When you get to 7 inches from top of the
    	//document, insert a hard page break.
    	object oPos;
    	double dPos = oWord.InchesToPoints(7);
    	oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertParagraphAfter();
    	do
    	{
    		wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    		wrdRng.ParagraphFormat.SpaceAfter = 6;
    		wrdRng.InsertAfter("A line of text");
    		wrdRng.InsertParagraphAfter();
    		oPos = wrdRng.get_Information
                           (Word.WdInformation.wdVerticalPositionRelativeToPage);
    	}
    	while(dPos >= Convert.ToDouble(oPos));
    	object oCollapseEnd = Word.WdCollapseDirection.wdCollapseEnd;
    	object oPageBreak = Word.WdBreakType.wdPageBreak;
    	wrdRng.Collapse(ref oCollapseEnd);
    	wrdRng.InsertBreak(ref oPageBreak);
    	wrdRng.Collapse(ref oCollapseEnd);
    	wrdRng.InsertAfter("We're now on page 2. Here's my chart:");
    	wrdRng.InsertParagraphAfter();
    
    	//Insert a chart.
    	Word.InlineShape oShape;
    	object oClassType = "MSGraph.Chart.8";
    	wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oShape = wrdRng.InlineShapes.AddOLEObject(ref oClassType, ref oMissing, 
    		ref oMissing, ref oMissing, ref oMissing,
    		ref oMissing, ref oMissing, ref oMissing);
    
    	//Demonstrate use of late bound oChart and oChartApp objects to
    	//manipulate the chart object with MSGraph.
    	object oChart;
    	object oChartApp;
    	oChart = oShape.OLEFormat.Object;
    	oChartApp = oChart.GetType().InvokeMember("Application",
    		BindingFlags.GetProperty, null, oChart, null);
    
    	//Change the chart type to Line.
    	object[] Parameters = new Object[1];
    	Parameters[0] = 4; //xlLine = 4
    	oChart.GetType().InvokeMember("ChartType", BindingFlags.SetProperty,
    		null, oChart, Parameters);
    
    	//Update the chart image and quit MSGraph.
    	oChartApp.GetType().InvokeMember("Update",
    		BindingFlags.InvokeMethod, null, oChartApp, null);
    	oChartApp.GetType().InvokeMember("Quit",
    		BindingFlags.InvokeMethod, null, oChartApp, null);
    	//... If desired, you can proceed from here using the Microsoft Graph 
    	//Object model on the oChart and oChartApp objects to make additional
    	//changes to the chart.
    
    	//Set the width of the chart.
    	oShape.Width = oWord.InchesToPoints(6.25f);
    	oShape.Height = oWord.InchesToPoints(3.57f);
    
    	//Add text after the chart.
    	wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	wrdRng.InsertParagraphAfter();
    	wrdRng.InsertAfter("THE END.");
    
    	//Close this form.
    	this.Close();
    }
    					
  7. ??????? ??? ???? ???? ????????? ????????. ?? ?????? ????? ?????? ??? ????? ??????? ???????? ???????:
    using Word = Microsoft.Office.Interop.Word;
    using System.Reflection;
    					
  8. ???? F5 ?????? ? ?????? ????????.
  9. ???? ??? Button1 ???? ????? Word ??????? "?" ?????? ???????.
??? ?????? ????????? ???????? ??? ??????? ???? ?? ??????? ??. ????? ??????? ??? ?????? ?? ??????? ??????? ?????? ?????.

??????? ????

??? ??? ?????? ????? ?????? ????????? ???????? ?? ????? ????, ???? ?? ?????? ?? ????? ??????? ???????? ????? ???? ????? ??? ???? ??????? ??????. ???????? ???? ?? ???? ??????? Word ??????? ????? ?????? ??? ????? ????? ?? ?? ???:
  • ???? ?? ???? ???? ???? ???? ?? ????? ????? ???????? ???? ?????????.
  • ????? ????? ????????? ?? ??? ???.
???????? ???? ???? ???? ??? ???? ??????? ??????? ??????? ???? ???? ??????? ??? ??? ????? ??????? ??? ??? ????????. ???????? "??????? ????????" ? ????? ????? ????? ???? ????? ??? ?????? ?? ??? ???????:
object oTemplate = "c:\\MyTemplate.dot";
oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing,
	ref oMissing, ref oMissing);
				
?? ?????? ????? ?? ???? ????? ???????? ???????? ???? ??????? ????? ?? ???? ?????? ????? ?? ????? ?? ???? ???? ?? ???????? ??? ???:
object oBookMark = "MyBookmark";
oDoc.Bookmarks.Item(ref oBookMark).Range.Text = "Some Text Here";
				
???? ??? ??? ??????? ???? ?? ??? ????? ????? ?????? ????? ????? ??????? ???? ???? ?? ????? ?? ??? ??????? "? ??? ???:
object oStyleName = "MyStyle";
oDoc.Bookmarks.Item(ref oBookMark).Range.set_Style(ref oStyleName);
				
- ?? -
object oStyleName = "MyStyle";
oWord.Selection.set_Style(ref oStyleName);
				

?????

????? ?? ?????????? ???? ??? ????? ???????? ??????? ?????? ?? "????? ??????? ?? Microsoft:
301659HOWTO: ????? Microsoft Word ????? ??? ????????? ?? Visual C# .NET
302902HOWTO: ??? ?? Office ?????? ??????? ?? Visual C# .NET
????? ?? ?????????? ?? ?????? ????? ????? Network (MSDN) ?????? Microsoft ???????:
????? Microsoft Office ?? Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

Word ?? Office (MSDN ????? Online)
http://msdn2.microsoft.com/en-us/library/aa201330(office.11).aspx

Word ?????? ????? (MSDN ????? Online)
http://msdn2.microsoft.com/en-us/library/aa201332(office.11).aspx

???????

???? ???????: 316384 - ????? ??? ??????: 30/???? ??????/1428 - ??????: 7.7
????? ???
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
????? ??????: 
kbmt kbautomation kbhowtomaster KB316384 KbMtar
????? ????
???: ??? ????? ??? ?????? ???????? ?????? ????? ???? ????? ?????????? ????? ?? ????????? ?????? ????. ???? ???? ?????????? ???? ?? ???????? ???????? ?????? ????????? ????? ????????? ???????? ????? ???????? ?????? ?? ?????? ??? ?? ???????? ???????? ?? ????? ??????? ?????? ??? ??????? ?????? ??. ?????? ?? ???? ??? ??????? ???????? ????? ?? ???? ????? ?????? ??? ????? ??? ????? ??????? ?? ????? ?? ?????? ??? ??? ??????? ??????? ?? ????? ????? ????? ????? ?????. ?? ????? ???? ?????????? ??????? ??? ????? ?? ??????? ?? ????? ?????? ?? ??? ????? ?? ????? ??????? ?? ???????? ?? ??? ???????. ???? ???? ?????????? ???????? ??? ????? ?????? ??????? ??????
???? ??? ????? ??????? ?????? ??????????316384

????? ???????

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com