AdminGuide
BETA

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…

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 



Bunlar da ilginizi çekebilir...

 



55 defa okunmuş. - 8.10.2019
Etiketler : c#,Excel,excel dosyası oluşturma,System.Runtime.InteropServices,Microsoft.Office.Interop.Excel Names
Serdar Kardan

Serdar Kardan

(25.8.1975) - Web Tasarım, Programlama

 
RSS

e-Posta Aboneliği

Delivered by FeedBurner

 

En çok Okunanlar
- Windows 7 Geçici Profil Açma Sorunu ( 14513 )
- Gizli Sürücü ve Donanımları Kaldırmak ( 10378 )
- c# ile windows tabanlı program geliştirme ( 10058 )
- Unutulan SQL SA Şifresini Değiştirme ( 9080 )
- Domain Ortamında Saat Senkronizasyonu Problemi ( 7806 )