winform中导出数据到Excel

以下是winform中DataGridView导出数据到Excel的方法,和大家分享下: 

private void export()
        {
            //导出到execl 
            try
            {
                //没有数据的话就不往下执行 
                if (dataGridView1.Rows.Count == 0)
                    return;
                //实例化一个Excel.Application对象 
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();

                //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写 
                excel.Visible = false;

                //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错 
                excel.Application.Workbooks.Add(true);
                //生成Excel中列头名称 
                for (int i = 0; i < dataGridView1.Columns.Count; i++)
                {
                    excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;
                }
                //把DataGridView当前页的数据保存在Excel中 
                for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dataGridView1.Columns.Count; j++)
                    {
                        if (dataGridView1[j, i].ValueType == typeof(string))
                        {
                            excel.Cells[i + 2, j + 1] = "'" + dataGridView1[j, i].Value.ToString();
                        }
                        else
                        {
                            excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();
                        }
                    }
                }

                //设置禁止弹出保存和覆盖的询问提示框 
                excel.DisplayAlerts = false;
                excel.AlertBeforeOverwriting = false;

                //保存工作簿 
                excel.Application.Workbooks.Add(true).Save();
                //保存excel文件 
                excel.Save("D:" + "\\KKHMD.xls");

                //确保Excel进程关闭 
                excel.Quit();
                excel = null;

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "错误提示");
            }
        }

希望对大家有所帮助 ,哇咔咔。

posted @ 2013-01-25 11:05  ellens  阅读(325)  评论(0)    收藏  举报