RT 由于GridView是模板列 里面放的CheckBox,所以不需要导出,怎样设置导出的时候不导出第一列,麻烦贴下代码.
还有个问题 好像GridView的Enabled=false的时候,好像无法导出.

解决方案 »

  1.   

    循环GridView中的数据给excel的单元格赋值  不循环第一列
    public static void ToExcel(DataGridView grid, string ExcelTitle)
            {
                System.Data.DataTable mytable = (System.Data.DataTable)grid.DataSource;
                try
                {
                    Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
                    int rowIndex, colIndex;
                    rowIndex = 1;
                    colIndex = 0;
                    Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);
                    if (grid.Rows.Count > 0)
                    {
                        foreach (DataGridViewColumn colu in grid.Columns)
                        {
                            if (colu.Visible)
                            {
                                colIndex = colIndex + 1;
                                xlApp.Cells[1, colIndex] = colu.HeaderText;
                            }
                        }
                        for (int row = 0; row < mytable.Rows.Count; row++)
                        {
                            rowIndex = rowIndex + 1;
                            colIndex = 0;
                            for (int col = 0; col < grid.Columns.Count; col++)
                            {
                                if (grid.Columns[col].Visible)
                                {
                                    colIndex = colIndex + 1;
                                    if (grid.Columns[col].CellType.Name == "DataGridViewComboBoxCell")
                                        xlApp.Cells[rowIndex, colIndex] = grid.Rows[row].Cells[col].FormattedValue;
                                    else
                                        xlApp.Cells[rowIndex, colIndex] = grid.Rows[row].Cells[col].Value;
                                }
                            }
                        }
                    }
                    else
                    {
                        foreach (DataColumn Col in mytable.Columns)
                        {
                            colIndex = colIndex + 1;
                            xlApp.Cells[1, colIndex] = Col.ColumnName;
                        }
                        for (int row = 0; row < mytable.Rows.Count; row++)
                        {
                            rowIndex = rowIndex + 1;
                            colIndex = 0;
                            for (int col = 0; col < mytable.Columns.Count; col++)
                            {
                                colIndex = colIndex + 1;
                                xlApp.Cells[rowIndex, colIndex] = grid.Rows[row].Cells[col].Value;
                            }
                        }
                    }
                    xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, colIndex]).Font.Bold = true;
                    xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[rowIndex, colIndex]).Borders.LineStyle = 1;
                    xlApp.Cells.EntireColumn.AutoFit();
                    xlApp.Cells.VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;
                    xlApp.Cells.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;
                    xlApp.Visible = true;
                }
                catch(Exception ex)
                {
                    MessageBox.Show("错误消息:"+ex.Message,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
                }
            }
    稍微修改一下就可以
      

  2.   

    不用楼上那么麻烦!
    把你的GridView赋值到另外一个GridView,第一列不要
    用新生成的GridView导出。
      

  3.   

    1.
    void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
        {
            e.Row.Cells[0].Visible = false;  //如果想使第1列不可见,则将它的可见性设为false
           //可以根据需要设置更多的列
        }2.
    this.GridView1.Columns[0].Visible = false;
      

  4.   

    参考:
    http://blog.csdn.net/xuenzhen123/archive/2009/10/22/4713019.aspx
    你把数据源拿过来就行了~
      

  5.   

    http://topic.csdn.net/u/20091107/15/bf6211f0-dc01-4dec-9126-7d8ade5ae5d7.html沉船贴 谁去帮帮忙