excel.Save("D:" + "123.xls");出现Exception from HRESULT: 0x800A03EC

婷说婷语 2013-11-05 10:00:14
可以导出excel表格,但是如果点击取消的时候就会出现下面的问题,求解!


源代码如下:
//将数据导出Excel表
public bool ExportDataGridview(DataGridView gridView, bool isShowExcle)
{
if (gridView.Rows.Count == 0)
{
return false;
}
//创建Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(true);

//生成字段名称
for (int i = 0; i < gridView.ColumnCount;i++)
{
excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText;
}
//填充数据
for (int i = 0; i < gridView.RowCount - 1; i++) //循环行
{
for(int j = 0;j < gridView.ColumnCount ;j++) //循环列
{
if(gridView[j,i].ValueType==typeof(string))
{
excel.Cells[i+2,j+1] = "'" + gridView.Rows[i].Cells[j].Value.ToString();
}
else
{
excel.Cells[i+2,j+1] = gridView.Rows[i].Cells[j].Value.ToString();
}
}
}
//设置禁止弹出保存和覆盖的询问提示框
excel.Visible = false;
excel.DisplayAlerts = false;
excel.AlertBeforeOverwriting = false;

//保存到临时工作簿
// excel.Application.Workbooks.Add(true).Save();
//保存文件

excel.Save("D:" + "123.xls");
excel.Quit();
return true;
}
...全文
169 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
婷说婷语 2013-11-05
  • 打赏
  • 举报
回复
用try catch 解决了,谢谢
  • 打赏
  • 举报
回复
我觉得不是excel.Save()后面路劲问题,可能是excel或者.netFramework版本的问题; 楼主可以考虑try catch;反正是点取消,页面不抛出错误就行了
婷说婷语 2013-11-05
  • 打赏
  • 举报
回复
哦,好的,谢谢。。
wind_cloud2011 2013-11-05
  • 打赏
  • 举报
回复
文件名你可以用变量阿,或在文本框里输入等
婷说婷语 2013-11-05
  • 打赏
  • 举报
回复
是可以,可是没有弹出对话框,改不了名字。
wind_cloud2011 2013-11-05
  • 打赏
  • 举报
回复
excel.Save("D:\\" + "123.xls"); 修改为 excel.ActiveWorkbook.SaveCopyAs(@"d:\123.xls"); 如果用excel.Save("D:\\" + "123.xls");会弹出一个保存对话框,如果你先取消,就会有你提到的错误信息,
婷说婷语 2013-11-05
  • 打赏
  • 举报
回复
是的,还是一样
  • 打赏
  • 举报
回复
引用 4 楼 u011129363 的回复:
两个都试过了,还是有错误。。
还报一样的错误?
婷说婷语 2013-11-05
  • 打赏
  • 举报
回复
两个都试过了,还是有错误。。
全栈极简 2013-11-05
  • 打赏
  • 举报
回复
excel.Save(Path.Combine("D:\\","123.xls")); 也可以使用NPOI来导出excel。http://blog.csdn.net/chinacsharper/article/details/12999435
c02645 2013-11-05
  • 打赏
  • 举报
回复
改成execel.Save(@"D:\"+"123.xls")
wind_cloud2011 2013-11-05
  • 打赏
  • 举报
回复
excel.Save("D:\\123.xls");或 excel.Save(@"D:\123.xls");

110,536

社区成员

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

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

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