Bolu Beyi tarafından yazıldı Mart - 28 - 2014 11 Yorum

excel-csharpZaman zaman veritabanındaki verileri Excel gibi dökümanlara aktarmak gerekebiliyor. Normalde C#’ta kod yazmaya gerek kalmadan MSSQL bize bu imkânı sunuyor fakat bazı durumlarda bir tabloyu olduğu gibi aktarmak yerine belirli sütunları almamız gerekebiliyor. İşte bu durumda çok fazla uğraşmamak için C# ile yapacağımız ufak bir program ile bu sorunu giderebiliriz.

Program için form uygulamamıza bir adet datagridview ve bir adet buton ekliyoruz. Datagridview’e verileri çektikten sonra butona basarak, griddeki verileri Excel’e aktarıyoruz. Programı yazmaya başlamadan önce referanslar bölümüne “Microsoft Office Interop Excel” dll’ini ekliyoruz. Programın kodları şu şekilde:

private void Form1_Load(object sender, EventArgs e)
{
griddoldur(“Select UrunAdi, Kategori, Renk, Fiyat from TblUrun”);
}
public void griddoldur(string sqlCumle)
{
string ConStr = “Data Source=.;Initial Catalog=UrunDB;Integrated Security=True;”;SqlConnection conn = new SqlConnection(ConStr);
string sql = sqlCumle;
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds);
GrdVeriler.DataSource = ds.Tables[0];
private void button1_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Visible = true;
Microsoft.Office.Interop.Excel.Workbook CalismaKitabi = excel.Workbooks.Add(System.Reflection.Missing.Value);
Microsoft.Office.Interop.Excel.Worksheet Sayfa = (Microsoft.Office.Interop.Excel.Worksheet)CalismaKitabi.Sheets[1];
int SutunBaslangic = 1;
int SatirBaslangic = 1;
for (int j = 0; j < GrdVeriler.Columns.Count; j++)
{
Microsoft.Office.Interop.Excel.Range Genislik = (Microsoft.Office.Interop.Excel.Range)Sayfa.Cells[SatirBaslangic, SutunBaslangic + j];
Genislik.Value2 = GrdVeriler.Columns[j].HeaderText;
}
SatirBaslangic++;for (int i = 0; i < GrdVeriler.Rows.Count; i++)
{
for (int j = 0; j < GrdVeriler.Columns.Count; j++)
{
try
{Microsoft.Office.Interop.Excel.Range Genislik = (Microsoft.Office.Interop.Excel.Range)Sayfa.Cells[SatirBaslangic + i, SutunBaslangic + j];
Genislik.Value2 = GrdVeriler[j, i].Value == null ? “” : GrdVeriler[j, i].Value;
}catch
{
;
}}}}

 

Bugüne kadar 11 yorum yapıldı

  1. ali dedi ki:

    Merhaba kolay gelsin öncelikle, Datagridviewde ki verileri excele transfer ediyorum.fakat bazı verilerde aynen excel çıktısı üretemiyor.
    Örnek : 7/2345 verisi tarih formatına çeviriyor Tem.90
    yapıyor
    ya da 10-8-12 yi 10.08.2012 yapıyor
    ya da 23,34 sayısını tarih formatına çeviriyor.
    Ben datagridviewdeki verilerin aynen excelde görünmesini istiyorum. (Excel de biçimlendirme yapsam alakasız şekilde çeviriyor) Sorunu nasıl düzeltebilirim?

  2. Şeker Kadın dedi ki:

    Biçimlendirme ile ilgili problem yaşanıyor cidden

  3. Online Film dedi ki:

    T.ederim Tamda öyle birşey lazımdı nasıl excel cekebilierim verileri diyordum.. t.ederim

  4. Teknofiber.net dedi ki:

    DataList’teki verileri çekmek içinde bu kullanılabiliyor mu?

  5. Beyaz dedi ki:

    biçimlendirme dısında bir sorun görünmüyor

  6. Apk dedi ki:

    Exceldeki verileri gridview ‘e çekmemiz mümkün mü peki ?

  7. GökhN dedi ki:

    Hocam listbox daki verileri excele aktarma yolu nedir peki.Bir projemde arduinodaki değerleri c# a ordan excele aktarmam gerekiyor yardımcı olurmusunuz

    • Bolu Beyi dedi ki:

      Şu an visual studio kurulu olmadığı için deneyemedim ama şuradaki iki linki inceleyebilirsiniz:

      stackoverflow.com/questions/7368204/listbox-to-excel

      stackoverflow.com/questions/13127033/saving-from-a-list-box-to-a-csv-file-in-c-sharp-win-form


Time limit is exhausted. Please reload CAPTCHA.