Microsoft Visual C# kullanarak yeni bir belge oluşturmak için Word otomatikleştirme

Makale çevirileri Makale çevirileri
Makale numarası: 316384 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makalenin Microsoft Visual Basic .NET sürümü için bkz: 316383.
Bu makalenin Microsoft Visual Basic 6.0 sürümü için bkz: 313193.
Hepsini aç | Hepsini kapa

Özet

Bu adım adım makalede, Microsoft Visual C# 2005 veya Microsoft Visual C# .NET Otomasyon kullanarak, Microsoft Word'de yeni bir belge oluşturmak açıklamaktadır.

Örnek kod

Bu makaledeki örnek kod, aşağıdakileri gösterilmiştir:
  • Metin ve biçimlendirme paragraf ekler.
  • Göz ve bir belge içinde çeşitli aralıkları değiştirebilirsiniz.
  • Tablolar ekleme, tablo biçimlendirmek ve tabloları veriyle doldurmak.
  • Bir grafik ekleyin.
Visual C# 2005 veya Visual C# .NET Otomasyon kullanarak yeni bir Word belgesi oluşturmak için aşağıdaki adımları izleyin:
  1. Microsoft Visual Studio 2005 veya Microsoft Visual Studio. NET'i başlatın.
  2. Dosya menüsünden Yeni ' yi tıklatın ve sonra Project ' i tıklatın. Altında Project Types, Visual C# Projects ' ı tıklatın ve şablonları altında Windows uygulama ' yı tıklatın. Varsayılan olarak, Form1 oluşturulur.

    Not Visual Studio 2005'te, Visual C#, Visual C# Projects yerine'ı tıklatın.
  3. Microsoft Word nesne kitaplığına bir başvuru ekleyin. Bunu yapmak için şu adımları izleyin:
    1. Proje) menüsünde Add Reference ' ı tıklatın.
    2. COM sekmesinde, Microsoft Word nesne kitaplığı ' nı bulun ve sonra da <a2>Seç</a2>'i tıklatın.

      Not Visual Studio 2005'te Seç ' i gerekmez.
      Not Microsoft Office 2003 Primary ınterop Assemblies (Pıa) içerir. Microsoft Office XP Pıa içermez, ancak bunlar yüklenebilir. Office XP Pıa hakkında'daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
      328912BILGI: Microsoft Office XP Pıa yükleme için kullanılabilir
    3. Seçimlerinizi kabul etmek için Tamam <a0>Başvuru Ekle</a0> iletişim kutusunda tıklatın. Seçtiğiniz kitaplıklar için sar?c?lar? oluşturmak isteyip istemediğiniz sorulursa, Evet'i tıklatın.
  4. Görünüm menüsünde, araç kutusunu görüntülemek için araç seçin ve sonra da Form1'e bir düğme ekleyin.
  5. Button1</a1> çift tıklatın. Formun kod penceresi görüntülenir.
  6. Kod penceresinde aşağıdaki kodu
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    ile Değiştir:
    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. <a0>Kod</a0> penceresinin en üstüne gidin. Kullanma yönergeleri listesinin sonuna aşağıdaki satırı ekleyin:
    using Word = Microsoft.Office.Interop.Word;
    using System.Reflection;
    					
  8. Oluşturmaya ve programı çalıştırmak için F5 tuşuna basın.
  9. Button1 Word Automation'ı başlatın ve belgeyi oluşturmak için Ek Yardım düğmesini tıklatın.
Kod tamamlandıktan sonra sizin için oluşturulan belgeyi inceleyin. Belge, biçimlendirilmiş bir paragraf, tablo ve grafik iki sayfa içeriyor.

Bir şablon kullanın.

Otomasyon tüm ortak biçimindeki belgeleri oluşturmak için kullanıyorsanız, önceden biçimlendirilmiş bir şablona dayalı yeni bir belge işlemi başlayarak yararlanabilirsiniz. Word Otomasyonu istemcinizle birlikte bir şablonu kullanarak, hiçbir şey bir belge oluşturma iki önemli avantajları vardır:
  • Belgelerinizi, biçimlendirmesini ve yerleşimini, nesneler üzerinde daha fazla denetim sağlayabilirsiniz.
  • Belgelerinizi daha az kod ile oluşturabilirsiniz.
Bir şablonu kullanarak, tabloları ve paragrafları belgedeki diğer nesneleri yerleşimini ince ayar olarak bu nesnelerde biçimlendirmeyi ekleyin. Otomasyon kullanarak, kodu aşağıdaki gibi şablona dayalı yeni bir belge oluşturabilirsiniz:
object oTemplate = "c:\\MyTemplate.dot";
oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing,
	ref oMissing, ref oMissing);
				
böylece istemci belgedeki belirli bir konuma değişken metin olarak doldurmak için Otomasyon izler, şablon, yer işaretleri tanımlayabilirsiniz:
object oBookMark = "MyBookmark";
oDoc.Bookmarks.Item(ref oBookMark).Range.Text = "Some Text Here";
				
oluşturun ve aşağıdaki gibi çalışma zamanında, uygulamak istediğiniz biçimlendirme stilleri depolamak şablon kullanarak başka bir yararı ise:
object oStyleName = "MyStyle";
oDoc.Bookmarks.Item(ref oBookMark).Range.set_Style(ref oStyleName);
				
- veya -
object oStyleName = "MyStyle";
oWord.Selection.set_Style(ref oStyleName);
				

Referanslar

Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
301659Nasıl YAPıLıR: Microsoft Word, Visual C# .NET adres mektup birleştirme gerçekleştirmek otomatikleştirme
302902Nasıl YAPıLıR: Visual C# .NET ile Office Otomasyonu'nu sunucular bağlama
Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitelerini ziyaret edin:
Visual Studio ile Microsoft Office geliştirme
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

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

Bir diğer Word (MSDN Online makalesi)
http://msdn2.microsoft.com/en-us/library/aa201332(office.11).aspx

Özellikler

Makale numarası: 316384 - Last Review: 17 Mayıs 2007 Perşembe - Gözden geçirme: 7.7
Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbmt kbautomation kbhowtomaster KB316384 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:316384

Geri Bildirim Ver

 

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