如何把DataGridView的数据导进Excel中?

解决方案 »

  1.   

    将dataGridview的datasource 做为表
    然后将表导入excel中(这个google出一堆)
      

  2.   

    StringWriter sw = new StringWriter();
    sw.WriteLine("库存-出入库统计\t仓库编号\t商品编号\t数量\t商品类别\t出入库类型");
    for (int i = 0; i < GridView1.Rows.Count; i++)
    {
       sw.WriteLine(
                    "\t" + GridView1.Rows[i].Cells[1].Text
                    + "\t" + GridView1.Rows[i].Cells[2].Text
                    + "\t" + GridView1.Rows[i].Cells[3].Text
                    + "\t" + GridView1.Rows[i].Cells[4].Text
                    + "\t" + GridView1.Rows[i].Cells[5].Text
                    );
    }
    Response.AddHeader("Content-Disposition", "attachment;filename=StockManageSystem_ChuruKuTotal.xls");
    Response.ContentType = "application/ms-excel";
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
    Response.Write(sw);
    Response.End();
      

  3.   

    http://blog.csdn.net/am2004/archive/2008/02/04/2083206.aspx
      

  4.   

    if (this.dataGridViewA.RowCount == 0)
                        {
                            MessageBox.Show("      没有任何记录!");
                            return;
                        }
                        if (saveFileDialog.ShowDialog() == DialogResult.Cancel) return;
                        Stream myStream0 = saveFileDialog.OpenFile();
                        StreamWriter sw0 = new StreamWriter(myStream0, System.Text.Encoding.GetEncoding(-0));
                        try
                        {
                            string column1 = "编号";
                            string column2 = "时间";
                            string column3 = "温度";
                            string column4 = "湿度";
                            string column5 = "二氧化碳";
                            sw0.WriteLine("{0,-10}\t{1,-30}\t{2,-10}\t{3,-10}\t{4,-10}", column1, column2, column3, column4, column5);
                            if (this.dataGridViewA.Rows.Count > 0)
                            {
                                foreach (DataGridViewRow row in this.dataGridViewA.Rows)
                                {
                                    sw0.WriteLine("{0,-10}\t{1,-30}\t{2,-10}\t{3,-10}\t{4,-10}", row.Cells[0].Value.ToString(), row.Cells[1].Value.ToString(), row.Cells[2].Value.ToString(), row.Cells[3].Value.ToString(), row.Cells[4].Value.ToString());
                                }
                            }
                        }
                        catch (IOException e1)
                        {
                            MessageBox.Show("错误代码26:保存记录出错!\n" + e1.Message, "系统错误");
                        }
                        finally
                        {
                            sw0.Close();
                            myStream0.Close();
                        }
      

  5.   

    参考第6楼, 支持DataGridView和DataTable导入Excel.
      

  6.   

    直接写Excel文件比较快,用MyXls可以直接生成xls文件,不用安装officepublic static void ExportToXlsFile(DataGridView dataGridView, string path)   
            {   
                XlsDocument doc = new XlsDocument();   
                Workbook workbook = doc.Workbook;   
                Worksheet worksheet = workbook.Worksheets.Add("sheet1");   
                DataGridViewColumnCollection columns = dataGridView.Columns;   
                foreach (DataGridViewColumn column in columns)   
                {   
                    ushort columnIndex = (ushort)column.DisplayIndex;   
                    Cell cell = worksheet.Cells.Add((ushort)1, columnIndex + (ushort)1, column.HeaderText);   
                    cell.Font.Bold = true;   
                    ColumnInfo info = new ColumnInfo(doc, worksheet)   
                    {   
                        ColumnIndexStart = columnIndex,   
                        ColumnIndexEnd = columnIndex,   
                        Width = (ushort)(column.Width * 40),   
                        Hidden = !column.Visible   
                    };   
                    worksheet.AddColumnInfo(info);   
                }   
      
                int i = 2;   
                foreach (DataGridViewRow row in dataGridView.Rows)   
                {   
                    foreach (DataGridViewCell cell in row.Cells)   
                    {   
                        object value = cell.FormattedValue;   
                        worksheet.Cells.Add(i, cell.OwningColumn.DisplayIndex + 1, value).Font.Height = 160;   
                    }   
                    i++;   
                }   
                doc.FileName = path;   
                doc.Save(true);   
            }  
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/danjiewu/archive/2009/12/18/5030261.aspx
      

  7.   


    http://topic.csdn.net/u/20090820/11/4fdeec59-f790-4afd-8ee9-519021ce72c3.html?seed=1058181878&r=59211103