如何将datagridview导出到excel文件

时间:2015-12-09 01:19:03

标签: c# winforms datagridview

我有一个5列的datagirdview数据,包括1列id和4列文本。 Besida,我被导出到excel文件,但它只显示5条记录,而我的datagridview有更多的记录。如何导出到条件datagridvew excel文件只有1条记录,3条记录...我有一个代码,任何人都可以帮助我吗? :

 private void Btnexport_Click(object sender, EventArgs e)
    {
        saveFileDialog1.InitialDirectory = "C:";
        saveFileDialog1.Title = "Save as Excel File";
        saveFileDialog1.FileName = "";
        saveFileDialog1.Filter = "Excel File(2003)|*.xls|Excel File(2007)|*.xlsx";
        if (saveFileDialog1.ShowDialog() != DialogResult.Cancel)
        {
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
            excel.Application.Workbooks.Add(Type.Missing);

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

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

                }
            }
            excel.ActiveWorkbook.SaveCopyAs(saveFileDialog1.FileName.ToString());
            excel.ActiveWorkbook.Saved = true;
            excel.Quit();
        }
    }

1 个答案:

答案 0 :(得分:0)

我认为您只需将第二行 for循环的更改为,导出的数据就是正确的。此外,你保证所有细胞都不是空的吗?如果为空,ToString()将抛出异常。