现有一窗体 只有一个DataGridView  和一个按钮 初始化的时候DataGridView的值已经被绑定好了...当点击按钮的时候把DataGridView的值导出的Excel,word里....

解决方案 »

  1.   

    http://blog.csdn.net/jilm168/archive/2007/11/06/1869118.aspx
      

  2.   

    http://topic.csdn.net/u/20091029/17/47f39430-c6bf-43f5-a79e-02cdc0a268f1.html
    代码一大堆啊一搜一大把
      

  3.   

    人家要的是 winform
    你给的是web
      

  4.   

    http://topic.csdn.net/u/20091029/17/47f39430-c6bf-43f5-a79e-02cdc0a268f1.html
    网上一搜一大把的
      

  5.   


    哥们,web的跟winform的一样?
      

  6.   

    将DataGridView 数据导出到Excel(当页)||(所有)   
    http://net-liu.javaeye.com/blog/699307
      

  7.   

     public static void ExportExcel(DataGridView dgv)
            {
                #region 导出Excel
                try
                {
                    int lvA = 0;
                    for (int i = 0; i < dgv.Columns.Count; i++)
                    {
                        if (dgv.Columns[i].Visible)
                        {
                            lvA++;
                        }
                    }
                    int rowCount = dgv.RowCount;
                    int columnCount = lvA;
                    Microsoft.Office.Interop.Excel.Application exc = new Microsoft.Office.Interop.Excel.Application();
                    if (exc == null)
                    {
                        throw new Exception("Excel无法启动");
                    }
                    exc.Visible = true;
                    Workbooks workbooks = exc.Workbooks;
                    _Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
                    Sheets sheets = exc.Sheets;
                    _Worksheet worksheet = (_Worksheet)sheets[1];
                    if (worksheet == null)
                    {
                        throw new Exception("Worksheet error");
                    }
                    Range r = worksheet.get_Range("A1", Missing.Value);
                    if (r == null)
                    {
                        MessageBox.Show("Range无法启动");
                        throw new Exception("Range error");
                    }
                    //以上是一些例行的初始化工作,下面进行具体的信息填充
                    //填充标题
                    int ColIndex = 1;
                    for (int i = 0; i < dgv.ColumnCount; i++)
                    {
                        if (dgv.Columns[i].Visible)
                        {
                            worksheet.Cells[1, ColIndex++] = dgv.Columns[i].HeaderText;
                        }
                    }
                    //获取DataGridView中的所有行和列的数值,填充到一个二维数组中.
                    object[,] myData = new object[rowCount + 1, columnCount];
                    for (int j = 0; j < dgv.Rows.Count; j++)
                    {
                        int a = 0;
                        for (int k = 0; k < dgv.Columns.Count; k++)
                        {
                            if (k > 0)
                            {
                                if (dgv.Rows[j].Cells[k].Visible)
                                {
                                    a++;
                                    myData[j, a] = dgv[k, j].Value;
                                }
                            }
                            else if (dgv.Rows[j].Cells[k].Visible)
                            {
                                myData[j, a] = dgv[k, j].Value;
                            }
                        }
                    }
                    //将填充好的二维数组填充到Excel对象中.
                    r = worksheet.get_Range(worksheet.Cells[2, 1], worksheet.Cells[rowCount + 1, columnCount]);
                    r.Value2 = myData;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                #endregion
            }
    导出Excel 把DataGridView传进去就行!  注意命名空间
      

  8.   

    private void button4_Click(object sender, EventArgs e)
      {
      SaveFileDialog saveFileDialog = new SaveFileDialog();
      saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
      saveFileDialog.FilterIndex = 0;
      saveFileDialog.RestoreDirectory = true;
      saveFileDialog.CreatePrompt = true;
      saveFileDialog.Title = "导出Excel文件到";  DateTime now = DateTime.Now;
      saveFileDialog.FileName = now.Year.ToString().PadLeft(2)
      + now.Month.ToString().PadLeft(2, '0')
      + now.Day.ToString().PadLeft(2, '0') + "-"
      + now.Hour.ToString().PadLeft(2, '0')
      + now.Minute.ToString().PadLeft(2, '0')
      + now.Second.ToString().PadLeft(2, '0');  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 ex)
      {
      MessageBox.Show("您取消了此次操作");
      }
      finally
      {
      sw.Close();
      myStream.Close();
      }
      }
      

  9.   

    object 未包含 get_Range 的定义a    b    c
    1    2    3
    1    2    3只能把a,b,c导进去剩下的都没进去 - -
      

  10.   

    #11楼用的是 SaveFileDialog saveFileDialog = new SaveFileDialog();
    路径你自己设置啊,保存对话框都弹出了啊
    还有就是这种问题就别跪了啊Google出一堆来的啊
      

  11.   

    设置路径是小事导出是大事......#11的是正解 ...
    但是能不能导出word 啊?