C# ile Excele Veri Kaydetmek Ne Kadar Zor Olabilirki?

2

10/12/2011 tarafından electrocoder

Böyle bir başlık atmamdaki sebep bu işin o kadarda kolay gibi görünüp, kolay olmamasıdır. Aynı uygulamayı Python dili ile daha kolay yazmıştım ama

Microsoft C# ın Excel bağlantısını bir okadar kapsamlı yapmış. MSDN in sayfasında 1-2 saat geçirmeme ve Memik YANIK Bey’ in sitesinde buldugum örneği incelememe rağmen bir çok sorunla karşılaştım.
Öncelikle uygulamanın Visual Studio 2008 ve Microsoft Ofis 2003 kullanarak yazıldığını belirtmeliyim. Çünkü versiyonlar arasında MSDN de anlatıldıgı gibi farklılıklar bulunmakta.

Kodları aynen alıp değiştirmeden kullanmak isterseniz Visual Studio ve Microsoft Ofis uyumluluğuna dikkat ediniz.
/*
* Projenin Adı : SahinExcel
* Amacı : C# ile Excel’ e veri aktarmak
* Tarih : 06-07-2011
* Web : http://www.electrocoder.NET
* Lisans : Kullanilan araclarin sahiplerinin lisans haklarina bakilmalidir.
* Eğitim amacli olarak genel kullanıma aciktir.
*/

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Microsoft.Office.Core;
using Microsoft.Office.Interop.Excel;

namespace SahinExcel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

/*
* yeni excel dosyasinin acilmasi icin
* Application ve Workbook nesneleri olusturuluyor…
*/

Microsoft.Office.Interop.Excel.Application excelDosyam;
Microsoft.Office.Interop.Excel.Workbook excelKitabim;
private void button1_Click(object sender, EventArgs e)
{
//ofis baglantisi olusturulur…
excelDosyam = new Microsoft.Office.Interop.Excel.Application();
excelDosyam.Visible = true;

//bir sayfa olusturur…
object sayfa = true;
excelKitabim=excelDosyam.Workbooks.Add(sayfa);

//birden fazla sayfa olusturmak icin…
object multiSayfa = System.Reflection.Missing.Value;

//kac adet sayfa eklenmek isteniyorsa “object count” parametresinde belirtilir…
Microsoft.Office.Interop.Excel.Worksheet Tablo;
Tablo = (Worksheet)excelDosyam.ActiveSheet;
excelDosyam.Worksheets.Add(multiSayfa, Tablo, 1, multiSayfa);
}

/*
* acilan excel dosyasina verilir yazdiriliyor…
*/

Microsoft.Office.Interop.Excel.Worksheet excelSayfam;
private void button2_Click(object sender, EventArgs e)
{
//tablo secilerek aktif tabloya veri eklenir…
excelSayfam = (Worksheet)excelDosyam.Application.Sheets[1];

//hangiSayfaAktif ise o secili hale getirilir…
object hangiSayfaAktif = 1;
excelSayfam.Select(hangiSayfaAktif);

excelSayfam.Cells[2, 2] = “sahin”;
excelSayfam.Cells[3, 2] = “mersin”;
excelSayfam.Cells[4, 2] = “manisali sahin”;
}

/*
* veri yazildiktan sonra dosyamiz veriler
* dosya yoluna kaydediliyor…
*/

private void button3_Click(object sender, EventArgs e)
{
excelKitabim.SaveAs(@”c:\SahinExcel.xls”,
Microsoft.Office.Interop.Excel.XlFileFormat.xlXMLSpreadsheet, Type.Missing, Type.Missing,
false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
}

/*
* verileri eklenen ve kaydedilen excel dosyasini kapatma zamani gelmistir…
*/

private void button4_Click(object sender, EventArgs e)
{
excelDosyam.Quit();
}
}
}

Yazamam link varsa verirmisin diyenler için işte size indirme linki. Buradan indiriniz..

Reklamlar

2 thoughts on “C# ile Excele Veri Kaydetmek Ne Kadar Zor Olabilirki?

  1. fatih dedi ki:

    {“‘c:\\SahinExcel.xls’ dosyasına erişilemiyor. Dosya bozuk veya salt okunur olabilir ya da yanıt vermeyen bir sunucuda bulunabilir.”} hatası veriyor.

  2. electrocoder dedi ki:

    Dosyanın SahinExcel.xls adı ile diskin c sürücüsünde bulunduğundan emin misiniz?

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: