22 Mayıs 2009 Cuma

C# dataGridView'den Excel Veri Aktarma




Sırasıyla ilk önce 1. ve 2. işlemi yapın
daga sonra dataGridView bulunduğu forma bir buton koyun ve aşağıdaki kodu yazın.
private void button1_Click(object sender, EventArgs e)
{

    ApplicationClass excel = new ApplicationClass();
    excel.Visible = true; 

    object Missing = Type.Missing;
    Workbook workbook = excel.Workbooks.Add(Missing);
    Worksheet sheet1 = (Worksheet)workbook.Sheets[1];
    int StartCol = 1;
    int StartRow = 1;
    for (int j = 0; j < dataGridView1.Columns.Count; j++)
    {
        Range myRange = (Range)sheet1.Cells[StartRow, StartCol + j];
        myRange.Value2 = dataGridView1.Columns[j].HeaderText;
    }
    StartRow++;
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
        for (int j = 0; j < dataGridView1.Columns.Count; j++)
        {
            try
            {
                Range myRange = (Range)sheet1.Cells[StartRow + i, StartCol + j];
                myRange.Value2 = dataGridView1[j, i].Value == null ? "" : dataGridView1[j, i].Value;
                myRange.Select();
            }
            catch
            {
                ;
            }
        }
    }
}

11 yorum:

  1. BU PAYLAŞIMIN İÇİN TEŞEKKÜRLER ÇOK İYİ OLMUŞ.
    ELİNE SAĞLIK.PAYLAŞIMLARININ DEVAMINI BEKLİYORUZ:)GÖKHAN

    YanıtlaSil
  2. çok sağol:)) eline sağlık çok işime yaradı :))

    YanıtlaSil
  3. Anlatım diye buna denir.Bu kadar ya.Hocam eline koluna sağlık allah razı olsun.Kısa ve Öz.İstenılen bu zaten..

    YanıtlaSil
  4. yeni versiyon excel ile uyumlu değil app clas nasıl çözebilirim ?

    YanıtlaSil
  5. Ben yazıyı eklediğim zamanlarda bir projede kullanmıştım. Şuan çok yoğun bir şekilde çalışıyorum. Test yada deneme yapamıyorum ama yorumlara bakınca bir sorun yok gibi. Siz tekrar deneyin isterseniz belki bir yerde hata yapmışsınızdır.

    YanıtlaSil
  6. Tam aradığım şey. Çok teşekkürler

    YanıtlaSil
  7. HERSEFERİNDE FARKLI EXCEL SAYFASI AÇIYOR DEVAMLI AYNI MASTER BİR EXCEL SAYFASI NASI AÇTIRABİLİRİZ.

    YanıtlaSil
  8. excel.Workbooks.Add(Missing); bunun yerine Workbooks.Open("C:\\kitap1.xls"); gibi deneme yaparmısın. Şuan vakit bulamıyorum ama sorununu biraz çabayla çözeceğine inanıyorum. Kodunuda burapa ğaylaşabilirsin kolay gelsin.

    YanıtlaSil
  9. MALESEF OLMUYOR UZUN ZAMANDIR DENIYORUM BİR TÜRLÜ ÇÖZEMEDİM.

    YanıtlaSil
  10. hallettim


    buyrun devamlı aynı sayfaya yazıyor


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

    private void Form1_Load(object sender, EventArgs e)
    {
    // TODO: This line of code loads data into the 'comportDataSet2.veri' table. You can move, or remove it, as needed.
    this.veriTableAdapter1.Fill(this.comportDataSet2.veri);

    }

    private void button1_Click(object sender, EventArgs e)
    {
    Microsoft.Office.Interop.Excel.ApplicationClass ExcelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
    ExcelApp.Application.Workbooks.Add("D:\\output.xlsx");

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

    for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
    {
    for (int j = 0; j < dataGridView1.Columns.Count; j++)
    {
    ExcelApp.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
    }
    }

    ExcelApp.ActiveWorkbook.SaveCopyAs("D:\\output.xlsx");
    ExcelApp.ActiveWorkbook.Saved = true;
    ExcelApp.Quit();
    }

    YanıtlaSil
  11. Merhaba visual studio 2012 de asp.net web app ve mvc5 frameworkü kullanarak yazdığım bir programda verileri excelde belirli bir formattaki şablona aktarmak istiyorum nasıl yapabilirim?

    YanıtlaSil

Değerli yorumlarınız için şimdiden teşekkür ederim.