把dataGridView数据导出到excel.public static void ExportDataGridViewToExcel(DataGridView dataGridview1)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
            saveFileDialog.FilterIndex = 0;
            saveFileDialog.RestoreDirectory = true;
            saveFileDialog.CreatePrompt = true;
            saveFileDialog.Title = "导出Excel文件到";            saveFileDialog.ShowDialog();            Stream myStream;
            myStream = saveFileDialog.OpenFile();
            StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
            string str = "";
            try
            {
                //写标题 
                for (int i = 0; i < dataGridview1.ColumnCount; i++)
                {
                    if (i > 0)
                    {
                        str += "\t";
                    }
                    str += dataGridview1.Columns[i].HeaderText;
                }                sw.WriteLine(str);
                //写内容
                for (int j = 0; j < dataGridview1.Rows.Count; j++)
                {
                    string tempStr = "";
                    for (int k = 0; k < dataGridview1.Columns.Count; k++)
                    {
                        if (k > 0)
                        {
                            tempStr += "\t";
                        }
                        tempStr += dataGridview1.Rows[j].Cells[k].Value.ToString();
                    }
                    sw.WriteLine(tempStr);
                }
                sw.Close();
                myStream.Close();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
            finally
            {
                sw.Close();
                myStream.Close();
            }
        }//引用
ExportDataGridViewToExcel(this.dataGridView1);

解决方案 »

  1.   

    /// <summary>
            /// 以操作Excel控件的方式将DataTable数据导出到Excel
            /// </summary>
            /// <param name="dt">DataTable对象</param>
            /// <param name="strExcelFile">Excel文件名</param>
            /// <param name="strError">out参数,返回出错信息</param>
            /// <returns>
            ///    -1 出错
            ///    0 成功
            /// </returns>
            public static int DataTable2Excel(System.Data.DataTable dt,
                string strExcelFileName,
                out string strError)
            {
                strError = "";
                int nRet = 0;            Excel.Application xlApp = new Excel.Application();
                Excel.Workbooks workbooks = xlApp.Workbooks;
                Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
                Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
                //~~
                // 写字段名
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    DataColumn col = dt.Columns[i];
                    worksheet.Cells[1, i+1] = col.ColumnName;
                }            // 写记录
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataRow row = dt.Rows[i];
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        worksheet.Cells[i+2, j+1] = row[j].ToString().Trim();
                    }
                }            worksheet.Columns.EntireColumn.AutoFit();//自动适应每列的宽度 
                workbook.Saved = true;
                workbook.SaveCopyAs(strExcelFileName);            // 关掉内存中的进程
                xlApp.Quit();
                return 0;
    }