在你的for循环里判断当前的 列名是不是等于你隐藏的列名,如果是 就continue。从而不生成字段名称和填充数据。

解决方案 »

  1.   


                for (int i = 0; i < dataGridView2.ColumnCount; i++) {
                    if (dataGridView2.Columns[i].Visible == false)
                    {
                        continue;
                    }
                }
      

  2.   

    http://blog.csdn.net/fuqiang19871117/article/details/6372181
      

  3.   

    可以新建个datatable,只放入需要导出的数据,然后导出这个datatable
    导出的代码最好封装成函数,放到一个类里
    免得各个窗口都需要导出,你代码一遍一遍复制粘贴