首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

DataGrideview导出到excel,该怎么解决

2012-12-27 
DataGrideview导出到excel网上找了一下,很多这样的代码public void ToExcel(DataGridView gv, bool isShow

DataGrideview导出到excel
网上找了一下,很多这样的代码


public void ToExcel(DataGridView gv, bool isShow)
        {
            //判断数据源控件 数据行是否为空
            if (gv.RowCount > 1)
            {
                //进行Excel程序的运行
                Excel.Application excel = new Excel.Application();
                // 新建一张excel工作簿
                excel.Application.Workbooks.Add(true);
                // excel程序是否显示
                excel.Visible = isShow;

                //生成excel标题
                for (int i = 0; i < gv.ColumnCount; i++)
                {
                    if (gv.Columns[i].Visible == true && (gv.Columns[i] is DataGridViewTextBoxColumn))
                    {
                        //根据数据源控件的列数,生成相应的excel列数,
                        // excel的列标题与数据源列标题相同
                        //excel的第一行 
                        excel.Cells[1, i + 1] = gv.Columns[i].HeaderText;
                        //设定单元格的宽度
                        excel.Cells.ColumnWidth = 20;
                    }
                }

                //填充数据
                for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dataGridView1.Columns.Count; j++)
                    {


                        if (dataGridView1[j, i].ValueType == typeof(string))
                        {
                            excel.Cells[i + 2, j + 1] = "" + dataGridView1[j, i].Value.ToString();
                        }
                        else
                        {
                            excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();
                        }
                    }
                }
            }
        }



这段代码根本不行啊   写入数据的时候,前面创建excel 表,把datagrideview的headerText 也可以写入excel表中,就是数据不显示,报错

excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();
未将对象引用设置到对象的实例。
[最优解释]
  for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dataGridView1.Columns.Count-1; j++)
                    {
                        if (dataGridView1[j, i].ValueType == typeof(string))
                        {
                            excel.Cells[i + 2, j + 1] = "" + dataGridView1[j, i].Value.ToString();
                        }
                        else
                        {
                            excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();


                        }
                    }
                }
            }
        }
[其他解释]
或者重新搜个代码试试
[其他解释]
sheet 那,没有 sheet不行的
1.ExcelApplication
2.Sheet 才是村数据的地方。
[其他解释]
我这有个导出的,他是把一个datagridview绑定的数据源datatable导出Excel的,这也是我们刚做的项目中的呵呵!!!!
[其他解释]
该回复于2012-12-05 16:52:49被管理员删除

热点排行