首页 文章

如何将datagridview导出到excel文件

提问于
浏览
0

我有一个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

    我想你可以简单地将 2nd for循环的 Columns 改为 Rows ,导出的数据也是正确的 . 此外,你保证所有细胞都不是空的吗?如果为空,ToString()将抛出异常 .

相关问题