Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Argumen bernama dan argumen opsional meningkatkan kenyamanan, fleksibilitas, dan keterbacaan dalam pemrograman C#. Selain itu, fitur-fitur ini sangat memfasilitasi akses ke antarmuka COM seperti API otomatisasi Microsoft Office.
Penting
VSTO (Visual Studio Tools for Office) bergantung pada .NET Framework. Add-in COM juga dapat ditulis dengan .NET Framework. Add-in Office tidak dapat dibuat dengan .NET Core dan .NET 5+, versi terbaru .NET. Ini karena .NET Core/.NET 5+ tidak dapat bekerja sama dengan .NET Framework dalam proses yang sama dan dapat menyebabkan kegagalan beban add-in. Anda dapat terus menggunakan .NET Framework untuk menulis add-in VSTO dan COM untuk Office. Microsoft tidak akan memperbarui vsto atau platform add-in COM untuk menggunakan .NET Core atau .NET 5+. Anda dapat memanfaatkan .NET Core dan .NET 5+, termasuk ASP.NET Core, untuk mengembangkan bagian server dari Add-in Web Office.
Dalam contoh berikut, metode ConvertToTable memiliki 16 parameter yang mewakili karakteristik tabel, seperti jumlah kolom dan baris, pemformatan, batas, font, dan warna. Ke-16 parameter bersifat opsional, karena sebagian besar waktu Anda tidak ingin menentukan nilai tertentu untuk semuanya. Namun, tanpa argumen bernama dan opsional, Anda harus memberikan nilai atau nilai placeholder. Dengan argumen bernama dan opsional, Anda menentukan nilai hanya untuk parameter yang diperlukan untuk proyek Anda.
Anda harus menginstal Microsoft Office Word di komputer Anda untuk menyelesaikan prosedur ini.
Nota
Komputer Anda mungkin menampilkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam instruksi berikut. Edisi Visual Studio yang Anda miliki dan pengaturan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi lebih lanjut, lihat Mempersonalisasi IDE.
Membuat aplikasi konsol baru
Mulai Visual Studio. Pada menu File , arahkan ke Baru, lalu pilih Proyek. Di panel Kategori Templat , perluas C#, lalu pilih Windows. Lihat di bagian atas panel Templat untuk memastikan bahwa .NET Framework 4 muncul di kotak Kerangka Kerja Target . Di panel Templat, pilih Aplikasi Konsol. Ketik nama untuk proyek Anda di bidang Nama . Pilih OK. Proyek baru muncul di Penjelajah Solusi.
Menambahkan referensi
Di Penjelajah Solusi, klik kanan nama proyek Anda lalu pilih Tambahkan Referensi. Kotak dialog Tambahkan Referensi muncul. Pada halaman .NET , pilih Microsoft.Office.Interop.Word di daftar Nama Komponen . Pilih OK.
Menambahkan yang diperlukan menggunakan direktif
Di Penjelajah Solusi, klik kanan file Program.cs lalu pilih Tampilkan Kode. Tambahkan arahan berikut using ke bagian atas file kode:
using Word = Microsoft.Office.Interop.Word;
Menampilkan teks dalam dokumen Word
Program Di kelas di Program.cs, tambahkan metode berikut untuk membuat aplikasi Word dan dokumen Word. Metode Tambahkan memiliki empat parameter opsional. Contoh ini menggunakan nilai defaultnya. Oleh karena itu, tidak ada argumen yang diperlukan dalam pernyataan panggilan.
Nota
Untuk menghindari masalah alur dan waktu COM yang dapat menyebabkan pengecualian seperti "Filter pesan menunjukkan bahwa aplikasi sibuk" (HRESULT 0x8001010A), aplikasi Word tetap tidak terlihat selama operasi dan hanya terlihat setelah semua operasi selesai.
static void DisplayInWord()
{
var wordApp = new Word.Application();
// Keep Word invisible during operations to avoid COM threading issues
wordApp.Visible = false;
// docs is a collection of all the Document objects currently
// open in Word.
Word.Documents docs = wordApp.Documents;
// Add a document to the collection and name it doc.
Word.Document doc = docs.Add();
// Make Word visible after operations are complete
wordApp.Visible = true;
}
Tambahkan kode berikut di akhir metode untuk menentukan tempat menampilkan teks dalam dokumen, dan teks apa yang akan ditampilkan:
// Define a range, a contiguous area in the document, by specifying
// a starting and ending character position. Currently, the document
// is empty.
Word.Range range = doc.Range(0, 0);
// Use the InsertAfter method to insert a string at the end of the
// current range.
range.InsertAfter("Testing, testing, testing. . .");
Jalankan aplikasi
Tambahkan pernyataan berikut ke bagian Utama:
DisplayInWord();
Tekan CTRL+F5 untuk menjalankan proyek. Dokumen Word muncul yang berisi teks yang ditentukan.
Mengubah teks menjadi tabel
ConvertToTable Gunakan metode untuk mengapit teks dalam tabel. Metode ini memiliki 16 parameter opsional. IntelliSense mengapit parameter opsional dalam tanda kurung siku, seperti yang ditunjukkan dalam ilustrasi berikut. Nilai default Type.Missing adalah nama sederhana untuk System.Type.Missing.
Argumen bernama dan opsional memungkinkan Anda menentukan nilai hanya untuk parameter yang ingin Anda ubah. Tambahkan kode berikut ke akhir metode DisplayInWord untuk membuat tabel. Argumen menentukan bahwa koma dalam string teks di range memisahkan sel tabel.
// Convert to a simple table. The table will have a single row with
// three columns.
range.ConvertToTable(Separator: ",");
Tekan CTRL+F5 untuk menjalankan proyek.
Bereksperimen dengan parameter lain
Ubah tabel sehingga memiliki satu kolom dan tiga baris, ganti baris terakhir dengan DisplayInWord pernyataan berikut lalu ketik CTRL+F5.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);
Tentukan format yang telah ditentukan sebelumnya untuk tabel, ganti baris terakhir dengan DisplayInWord pernyataan berikut lalu ketik CTRL+F5. Format dapat berupa salah satu konstanta WdTableFormat .
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
Format: Word.WdTableFormat.wdTableFormatElegant);
Contoh
Kode berikut mencakup contoh lengkap:
using System;
using Word = Microsoft.Office.Interop.Word;
namespace OfficeHowTo
{
class WordProgram
{
static void Main(string[] args)
{
DisplayInWord();
}
static void DisplayInWord()
{
var wordApp = new Word.Application();
// Keep Word invisible during operations to avoid COM threading issues
wordApp.Visible = false;
// docs is a collection of all the Document objects currently
// open in Word.
Word.Documents docs = wordApp.Documents;
// Add a document to the collection and name it doc.
Word.Document doc = docs.Add();
// Define a range, a contiguous area in the document, by specifying
// a starting and ending character position. Currently, the document
// is empty.
Word.Range range = doc.Range(0, 0);
// Use the InsertAfter method to insert a string at the end of the
// current range.
range.InsertAfter("Testing, testing, testing. . .");
// You can comment out any or all of the following statements to
// see the effect of each one in the Word document.
// Next, use the ConvertToTable method to put the text into a table.
// The method has 16 optional parameters. You only have to specify
// values for those you want to change.
// Convert to a simple table. The table will have a single row with
// three columns.
range.ConvertToTable(Separator: ",");
// Change to a single column with three rows..
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);
// Format the table.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
Format: Word.WdTableFormat.wdTableFormatElegant);
// Make Word visible after all operations are complete
wordApp.Visible = true;
}
}
}