Oca 22

C# Excel’e Çıktı Almak

Excel’e C# dilinde yazdığımız bir programdan nasıl çıktı alacağımızı anlatacağım. Öncelikle bir datagridview nesnesine ihtiyacımız var. Datagrid üzerindeki verilerin çıktısını alacağız.

datagridgoruntu

DataGrid örnek görüntüsü yandaki gibi.

         Datagridview’a verilerin nasıl alınacağına ilişkin bilgiyi https://erencol.wordpress.com/2013/01/26/c-ile-sql-server-baglantisi/ linkinde bulabilirsiniz. 

         Excel’e veri aktarmak içinse öncelikle projemizdeki solution explorer penceresinden Referans eklememiz gerekir (References kısmından) Excel için References’a sağ  tıklayıp add referance diyoruz ve oradanaşagıdaki adımları izliyoruz. Excell Seçip Ok tıklıyoruz. Referans ekleme işlemimiz tamanlandı. Referans eklemezseniz şu hatayı almanız muhtemeldir.

“The type or namespace name ‘Office’ does not exist in the namespace ‘Microsoft’ (are you missing an assembly reference?)”

solution1addreferance

 

 

 

 

 

 

 

 

Butona veya hangi event’a kod yazmak istiyorsak giriyoruz ve aşağıdaki kod satırından ilgili yerleri değiştirirerek projenizde kullanabilirsiniz.

 

Microsoft.Office.Interop.Excel.Application wapp;
Microsoft.Office.Interop.Excel.Worksheet wsheet;
Microsoft.Office.Interop.Excel.Workbook wbook;
wapp = new Microsoft.Office.Interop.Excel.Application();
wapp.Visible = false;
wbook = wapp.Workbooks.Add(true);
wsheet = (Microsoft.Office.Interop.Excel.Worksheet)wbook.ActiveSheet;
try
{

for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
wsheet.Cells[1, i + 1] = this.dataGridView1.Columns[i].HeaderText;
}

for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
DataGridViewRow row = this.dataGridView1.Rows[i];
for (int j = 0; j < row.Cells.Count; j++)
{
DataGridViewCell cell = row.Cells[j];
try
{
wsheet.Cells[i + 2, j + 1] = (cell.Value == null) ? “” : cell.Value.ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
wapp.Visible = true;
}
catch (Exception ex1)
{
MessageBox.Show(ex1.Message);
}
wapp.UserControl = true;
}

ekran1

 

Bir Cevap Yazın