Cara mengotomatisasi Microsoft Word untuk membuat dokumen baru menggunakan Visual C#

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 316384 - Melihat produk di mana artikel ini berlaku.
Untuk Microsoft Visual Basic.NET versi ini Pasal, lihat 316383.
Untuk versi Microsoft Visual Basic 6.0 ini Pasal, lihat 313193.
Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini selangkah demi selangkah menjelaskan cara untuk membuat yang baru dokumen Microsoft Word dengan menggunakan otomatisasi dari Microsoft Visual C# 2005 atau Microsoft Visual C#.NET.

Contoh kode

Kode contoh dalam artikel ini menunjukkan bagaimana melakukan berikut:
  • Masukkan paragraf dengan teks dan format.
  • People dan memodifikasi berbagai rentang dalam dokumen.
  • Menyisipkan tabel, format tabel, dan mengisi tabel dengan data.
  • Tambahkan bagan.
Untuk membuat dokumen Word yang baru dengan menggunakan otomatisasi dari Visual C# 2005 atau Visual C#.NET, ikuti langkah berikut:
  1. Mulai Microsoft Visual Studio 2005 atau Microsoft Visual Studio.NET.
  2. Pada Berkas menu, klik Baru, lalu klik Project. Di bawah Jenis proyek, klik Visual C# proyek, lalu klik Aplikasi Windows di bawah Pola acu. Form1 dibuat secara default.

    Catatan Pada Visual Studio 2005, klik Visual C# Sebaliknya dari Visual C# proyek.
  3. Menambahkan referensi ke Perpustakaan objek Microsoft Word. Untuk melakukannya, ikuti langkah-langkah berikut:
    1. Pada Project menu, klik Menambahkan referensi.
    2. Pada COM tab, Cari Microsoft Word Perpustakaan objek, lalu klik Pilih.

      Catatan Pada Visual Studio 2005, Anda tidak perlu klik Pilih.
      Catatan Microsoft Office 2003 mencakup Interop utama Majelis (PIAs). Microsoft Office XP tidak mencakup PIAs, tetapi mereka dapat di-download. Untuk informasi lebih lanjut tentang Office XP PIAs, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
      328912INFO: Microsoft Office XP PIAs tersedia untuk di-Download
    3. Klik Oke dalam Menambahkan referensi kotak dialog untuk menerima pilihan Anda. Jika Anda diminta untuk menghasilkan pembungkus untuk perpustakaan yang Anda pilih, klik Ya.
  4. Pada Lihat menu, pilih Toolbox untuk menampilkan Toolbox, dan kemudian menambahkan tombol untuk Form1.
  5. Klik dua kali Button1. Jendela kode untuk bentuk muncul.
  6. Dalam jendela kode, mengganti kode berikut
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    dengan:
    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. Gulir ke atas jendela kode. Tambahkan berikut garis akhir daftar menggunakan Petunjuk:
    using Word = Microsoft.Office.Interop.Word;
    using System.Reflection;
    					
  8. Tekan F5 untuk membangun dan menjalankan program.
  9. Klik Button1 mulai Word Automation dan untuk membuat dokumen.
Setelah kode selesai, memeriksa dokumen yang dibuat Untukmu. Dokumen berisi halaman dua paragraf diformat, tabel, dan bagan.

Menggunakan Template

Jika Anda menggunakan otomatisasi untuk membangun dokumen yang semuanya dalam format umum, Anda dapat memperoleh manfaat dari memulai proses dengan dokumen baru yang didasarkan pada template sudah terformat. Menggunakan template dengan kata-kata Anda Klien otomasi memiliki dua keuntungan signifikan lebih dari membangun sebuah dokumen dari tidak ada:
  • Anda dapat memiliki kontrol yang lebih format besar dan penempatan objek di seluruh dokumen.
  • Anda dapat membangun dokumen Anda dengan sedikit kode.
Dengan menggunakan template, Anda dapat menyempurnakan penempatan tabel, paragraf, dan lain objek dalam dokumen, serta mencakup format pada objek tersebut. Dengan menggunakan otomatisasi, Anda dapat membuat dokumen baru berdasarkan template Anda dengan kode seperti berikut:
object oTemplate = "c:\\MyTemplate.dot";
oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing,
	ref oMissing, ref oMissing);
				
Di template Anda, Anda dapat menentukan bookmark sehingga Anda otomatisasi klien dapat mengisi variabel teks pada lokasi tertentu dalam dokumen, sebagai berikut:
object oBookMark = "MyBookmark";
oDoc.Bookmarks.Item(ref oBookMark).Range.Text = "Some Text Here";
				
Keuntungan lain untuk menggunakan template adalah bahwa Anda dapat membuat dan menyimpan memformat gaya yang ingin Anda Terapkan pada saat runtime, sebagai berikut:
object oStyleName = "MyStyle";
oDoc.Bookmarks.Item(ref oBookMark).Range.set_Style(ref oStyleName);
				
-atau-
object oStyleName = "MyStyle";
oWord.Selection.set_Style(ref oStyleName);
				

REFERENSI

Untuk informasi lebih lanjut, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
301659HOWTO: Mengotomatisasi Microsoft Word untuk melakukan gabungan surat dari Visual C#.NET
302902 HOWTO: Mengikat untuk server otomatisasi kantor dengan Visual C#.NET
Untuk informasi lebih lanjut, kunjungi Website Microsoft berikut Situs Web Developer Network (MSDN):
Microsoft Office Development with Visual Studio
.aspx http://msdn2.Microsoft.com/en-us/library/aa188489 (office.10)

Kata di kantor (MSDN Online artikel)
.aspx http://msdn2.Microsoft.com/en-us/library/aa201330 (office.11)

Satu lagi kata (MSDN Online artikel)
.aspx http://msdn2.Microsoft.com/en-us/library/aa201332 (office.11)

Properti

ID Artikel: 316384 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Word 2002
Kata kunci: 
kbautomation kbhowtomaster kbmt KB316384 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:316384

Berikan Masukan

 

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