C#Winform数据导出报错

辣椒小鱼 2014-05-11 12:51:50

RT(新手):
先上代码:
 public void exceldaochu1(DataGridView datagridview1)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();

//对此实例进行验证,如果为null则表示运行此代码的机器可能未安装Excel
if (excel==null)
{
MessageBox.Show("机器未安装Microsoft Office Excel");
}
else
{
excel.Visible = true;
excel.Application.Workbooks.Add(true);
for (int i = 0; i < datagridview1.ColumnCount; i++)
{
excel.Cells[1, i + 1] = datagridview1.Columns[i].HeaderText;
}
for (int j = 0; j < datagridview1.RowCount; j++)
{
for (int n = 0; n < datagridview1.ColumnCount; n++)
{
excel.Cells[j + 2, n + 1] = datagridview1.Rows[j].Cells[n].Value.ToString();
}
}

}
}

环境1,数据大概60条用以上代码无误,很正常!
环境2:数据大概接近700条,就报如图错误!
网上看了不少大神的代码,实际运用的时候效果很不理想....以上麻烦各位能否指点下出错原因。谢谢
...全文
138 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangnaisheng 2014-05-12
  • 打赏
  • 举报
回复
excel.Cells[j + 2, n + 1] = datagridview1.Rows[j].Cells[n].Value.ToString(); 修改为 excel.Cells[j + 2, n + 1] = datagridview1.Rows[j].Cells[n].Text.ToString(); 试试看。
紫幽人 2014-05-11
  • 打赏
  • 举报
回复
引用 3 楼 andywangguanxi 的回复:
看一下数据量700条时是一点都没写入还是写到某一条时才报的错误。数据量大了是否考虑开个线程单独处理呢
新手,还没玩那么高深,只是不知道上面程序该如何修改
EdsionWang 2014-05-11
  • 打赏
  • 举报
回复
看一下数据量700条时是一点都没写入还是写到某一条时才报的错误。数据量大了是否考虑开个线程单独处理呢
辣椒小鱼 2014-05-11
  • 打赏
  • 举报
回复
引用 1 楼 ugvihc2006 的回复:
execl 列数有限制,你的表一共有多少列?
6列啊
修仙之人 2014-05-11
  • 打赏
  • 举报
回复
execl 列数有限制,你的表一共有多少列?
清江堤畔 2014-05-11
  • 打赏
  • 举报
回复
如3楼所说,楼主看看在数据量为700条时,EXCEL中是否有数据,如果有的话,查一下最后一条记录的下一条记录(即不能写入的那条记录)在数据源中,是否某列存在空值(NULL)。

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧