مثال زیر کد سی شارپی است که نشان می دهد، چگونه برای ایجاد یک فایل اکسل از COM interop استفاده کنید. قبل از شروع به ایجاد برنامه جدید Excel در C #، باید اکسل را روی سیستم خود نصب کنید تا این کد درست اجرا شود.

کتابخانه اکسل

برای دسترسی به مدل شیء از ویژوال C # .NET، باید Microsoft Excel 15.0 Object Library را به پروژه تان اضافه کنید.

یک پروژه جدید در ویژوال استودیو ایجاد کنید و یک دکمه فرمان برای فرم سی شارپ خود اضافه کنید.

نحوه استفاده از COM Interop برای ایجاد یک جدول اکسل

تصاویر زیر را بنویسید تا بتوانید کتابخانه مرجع اکسل را در پروژه خود اضافه کنید.

ابتدا  گزینه Add Reference از منوی pROJECT  در Visual Studio اجرا کنید:

اضافه کردن مرجع به پروژه سی شارپ

سپس در کادر محاوره ای باز شده کتابخانه مرجع Excel را انتخاب کرده و تائید کنید.

افزودن کتابخانه مرجع اکسل به سی شارپ

روش ایجاد یک سند اکسل با برنامه نویسی

ابتدا باید شیء اکسل را ایجاد می کنیم :

Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

و در صورتی که شی ایجاد نشد پیغام خطا نمایش می دهیم(قبل از ایجاد کتاب جدید اکسل، باید بررسی کنید آیا اکسل در سیستم شما نصب شده است یا خیر.):

if (xlApp == null)
{
MessageBox.Show("Excel is not properly installed!!");
return;
}

سپس یک کتاب کار (WorkBook) جدید و یک ورک شیت ایجاد کنید:

Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

پس از ایجاد کتاب جدید، گام بعدی این است که محتوای ورک شیت را تعیین کنید:

xlWorkSheet.Cells[1, 1] = "ID";
xlWorkSheet.Cells[1, 2] = "Name";
xlWorkSheet.Cells[2, 1] = "1";
xlWorkSheet.Cells[2, 2] = "One";
xlWorkSheet.Cells[3, 1] = "2";
xlWorkSheet.Cells[3, 2] = "Two";

در کد بالا ما داده ها را در Sheet1 می نویسیم، اگر میخواهید داده را در ورق 2 بنویسید، باید این کار را مانند این انجام دهید.

xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
xlWorkSheet.Cells[1, 1] = "Sheet 2 content";

ذخیره فایل اکسل

پس از نوشتن داده ها در سلول ها ، گام بعدی این است که فایل اکسل را در سیستم خود ذخیره کرده و از برنامه Excel خارج شوید.

xlWorkBook.SaveAs("d:\\csharp-Excel.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();

این هم برنامه کاملی که برای ذخیره کردن داده ها در فایل اکسل نوشته شده است:

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
MessageBox.Show("Excel is not properly installed!!");
return;
}
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Cells[1, 1] = "ID";
xlWorkSheet.Cells[1, 2] = "Name";
xlWorkSheet.Cells[2, 1] = "1";
xlWorkSheet.Cells[2, 2] = "One";
xlWorkSheet.Cells[3, 1] = "2";
xlWorkSheet.Cells[3, 2] = "Two";
xlWorkBook.SaveAs("d:\\csharp-Excel.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
Marshal.ReleaseComObject(xlWorkSheet);
Marshal.ReleaseComObject(xlWorkBook);
Marshal.ReleaseComObject(xlApp);
MessageBox.Show("Excel file created , you can find the file d:\\csharp-Excel.xls");
}
}
}