Zaman 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”);
}
{
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];
{
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
{
;
}}}}
{
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
{
;
}}}}
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?
Merhaba,
Biçimlendirmeyi farklı şekillerde deneyin, onun haricinde aklıma başka birşey gelmiyor.
Biçimlendirme ile ilgili problem yaşanıyor cidden
T.ederim Tamda öyle birşey lazımdı nasıl excel cekebilierim verileri diyordum.. t.ederim
DataList’teki verileri çekmek içinde bu kullanılabiliyor mu?
Denemedim ama ufak tefek syntax değişiklikleri ile kullanılabilir diye düşünüyorum.
biçimlendirme dısında bir sorun görünmüyor
Exceldeki verileri gridview ‘e çekmemiz mümkün mü peki ?
Burdaki linki inceleyebilirsiniz:
stackoverflow.com/questions/16293643/import-excel-to-datagridview
Hocam listbox daki verileri excele aktarma yolu nedir peki.Bir projemde arduinodaki değerleri c# a ordan excele aktarmam gerekiyor yardımcı olurmusunuz
Ş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