وب آکادمی

مرجع آموزش طراحی و برنامه نویسی وب

نحوه ایجاد فایل اکسل در سی شارپ

دسته بندی:مجموعه پروژه سی شارپ تاریخ انتشار: 20 آذر 1397 برچسب ها : برچسب‌ها:, ,

مثال زیر کد سی شارپی است که نشان می دهد، چگونه برای ایجاد یک فایل اکسل از 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");
}
}
}

8 پاسخ به “نحوه ایجاد فایل اکسل در سی شارپ”

  1. Zahra گفت:

    سلام، متشکرم از توضیح مفید و کاملتون. من بیش از ده سایت رو سر زدم هر کدوم حداقل یک خطا داشتند اما برنامه ای که شما اینجا نوشتید واضح، کامل و بدون خطا بود. خدا قوت و یه دنیا ممنون.

  2. user گفت:

    سلام. یه سوال این برنامه که آماده شد وقتی تو سیستمی که آفیس نصب نیست اجرا میکنیم خطا میده dll آفیس رو چطور توکامپیوتر مقصد رجیستر کنیم.

  3. محمدی گفت:

    با سلام من یک فایل دارم اکسل که حاوی ستون های مختلف است که به شماره های متغیر اختصاص داده شده میخواهم خروجی هر ستون را بر مبنای شماره های گوناگون جدا کند

    • محمدی گفت:

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

  4. رضا گفت:

    عالی بود

  5. مسلم گفت:

    ممنون از برنامه خوبتون من ی‌برنامهنوشتم الان میخام‌فایل اکسل زو‌با ویژوال ذخیره کنم ولی نام فایل رو از طریق اطلاعات یک‌تک باکس باشه

    • محمدی گفت:

      سلام
      راه حل این هست که یک جعبه متن مثلاً با نام txt1 روی فرم قرار بدین و در دستور SaveAs به جای d:\\csharp-Excel.xls بنویسید txt1.Text

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

20 − یازده =