C# - Excel Dosyası Oluşturma


8.10.2019 / Serdar Kardan


C# - Excel Dosyası Oluşturma

Bu yazıda C# ile kod yazarak bir Excel dosyası oluşturmayı, bir sayfa ve içerik oluşturarak dosya olarak kaydetmeyi işleyeceğiz.

Aşağıdaki kod örneğinin çalışması için öncelikle sisteminizde Excel’ in kurulu olması gerekiyor.

Ek olarak nesne modeline C # ile erişmek için projenize Microsoft Excel 15.0 Nesne Kitaplığı'nı eklemeniz gerekir. Aşağıdaki adımları takip ederek projenize Excel referans kütüphanesini ekleyebilirsiniz.

Proje ismine sağ tıklayıp Add > Reference yolunu takip edin.

How to create Excel in C Sharp - Excel Dosyası Oluşturma

Reference Manager ekranında COM listesi altında Microsoft Excel X.X Object Library seçeneğini işaretleyin ve OK butonuna basarak projenize Excel referans kütüphanesini ekleyebilirsiniz.

How to create Excel in C Sharp - Excel Dosyası Oluşturma

Öncelikle Excel uygulama nesnesini başlatıyoruz.

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

Excel dosyasını oluşturmadan önce sisteminizde Excel’in yüklü olup olmadığını kontrol etmemiz gerekiyor.

if (xlApp == null)
{
    MessageBox.Show("Sisteminizde Excel kurulu değil...");
    return;
}

Daha sonra bir yeni çalışma sayfası oluşturuyoruz ve içerik giriyoruz.

xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

xlWorkSheet.Cells[1, 1] = "Sıra NO";
xlWorkSheet.Cells[1, 2] = "İsim";
xlWorkSheet.Cells[2, 1] = "1";
xlWorkSheet.Cells[2, 2] = "Serdar";
xlWorkSheet.Cells[3, 1] = "2";
xlWorkSheet.Cells[3, 2] = "Barış";

Burada hücreleri doldurma işini bir döngüyle destekleyebilirsiniz örneğin… Yani veritabanından alacağınız kayıtları istediğiniz şekilde düzenledikten sonra birçok programdan beklendiği gibi dışarı veri aktarımı ile Excel dosyası oluşturabilirsiniz...

Eğer ikinci bir sayfa oluşturmanız gerekiyorsa aşağıdaki şekilde bu sayfayı oluşturabilirsiniz.

xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
xlWorkSheet.Cells[1, 1] = "İkinci sayfa içeriğini de ekleyebilirsiniz…";

Dosya içeriğini oluşturduğumuza göre artık dosyayı kaydedebiliriz.

xlWorkBook.SaveAs("deneme-dosya.xls");

İşlemin tamamlanmasından sonra oluşturduğumuz nesnenin hafızadan temizlenmesi gerekir. Bellek yönetimi ile ilgili metodları bulabileceğiniz Marshal Class’ ını içeren System.Runtime InteropServices namespace’ ini import etmelisiniz.

using System.Runtime.InteropServices;

Sonrasında da nesneleri bırakabiliriz…

Marshal.ReleaseComObject (excelWB);
Marshal.ReleaseComObject (excelApp);

Aşağıdaki kod bloğunu kullanarak örnek projeniz için kullanabilirsiniz...

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace CreateExcel
{
	public partial class MainForm : Form
	{
		public MainForm()
		{
			InitializeComponent();
		}

		private void btnCreateExcel_Click(object sender, EventArgs e)
		{
			Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

			if (xlApp == null)
			{
				MessageBox.Show("Sisteminizde Excel kurulu değil...");
				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] = "Sıra NO";
			xlWorkSheet.Cells[1, 2] = "İsim";
			xlWorkSheet.Cells[2, 1] = "1";
			xlWorkSheet.Cells[2, 2] = "Serdar";
			xlWorkSheet.Cells[3, 1] = "2";
			xlWorkSheet.Cells[3, 2] = "Barış";

			xlWorkBook.SaveAs("c:\\deneme-dosya.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 dosyası c:\\deneme-dosya.xls adresinde oluşturuldu...");
		}
	}
}

 


Proje Dosyaları : CreateExcel.sln

Referanslar :
Microsoft.Office.Interop.Excel Namespace

Marshal Class 



8.10.2019 - 6621


Etiketler : c#,Excel,excel dosyası oluşturma,System.Runtime.InteropServices,Microsoft.Office.Interop.Excel Names
Leave a Comment:

Bunlar da ilginizi çekebilir
Windows 10 Ağ Profillerini Görüntüleme ve Silme
Windows 10 ile ağ profillerini yönetmeniz ve bağlanmakta sorun yaşadığınız ağları silip tekrar bağlanmanız gerekebilir.
G Data Business Client Paket kurulumu
G Data Business Management Server üzerinden Client tarafına kurulumunu öğreniyoruz.
Spooler Error-Yazdırma briktiricisi başlatılamıyor.
Printer Subspooler Hatası nasıl nasıl giderilir?
 

En çok Okunanlar



Bumerang - Yazarkafe