C#导出数据到Excel过程中遇到的异常来自 HRESULT:0x800A03EC 20

usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.We... using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;//SQL数据库
using Excel = Microsoft.Office.Interop.Excel;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//创建Excel文件
CreateExcelTable();
}
}
protected void Button1_Click(object sender, EventArgs e)
{

}
private DataSet GetData()
{
//从数据库中获取数据
string cmdText = "Select * from demo";
SqlConnection myConnection = new SqlConnection("Data Source=172.16.57.250;Initial Catalog=MentalityTest;User ID=sa;Password=sasa");
SqlDataAdapter sqldataAdapter = new SqlDataAdapter(cmdText, myConnection);
//执行数据库查询
myConnection.Open();
DataSet myds = new DataSet();
sqldataAdapter.Fill(myds);
myConnection.Close();
return (myds);
}
private void CreateExcelTable()
{
//从数据库获取数据
DataSet ds= GetData();
//创建Excel对象
Excel.Application excel = new Excel.Application();
//设置行和列的索引
int rowUndex = 1;
int collndex = 0;
//添加Excel对象的WorkBooks
excel.Application.Workbooks.Add(true);
System.Data.DataTable table = ds.Tables[0];
//将所得到的表的列名赋值给单元格
foreach (DataColumn col in table.Columns)
{
//添加列名
collndex++;
excel.Cells[1, collndex] = col.ColumnName;
}
//同样的方法处理数据
foreach (DataRow row in table.Rows)
{
//添加数据
rowUndex++;
collndex = 0;
foreach (DataColumn col in table.Columns)
{
collndex++;
excel.Cells[rowUndex,collndex]=row[col.ColumnName].ToString();
}
}
//不可见,即后台处理
excel.Visible=false;
excel.DisplayAlerts=false;
//保存刚才创建的表格
excel.Save(MapPath("ExcelDB/ExcelTable.xls"));
excel.Application.Workbooks.Close();
excel.Application.Quit();
excel.Quit();
//释放使用的Excel对象
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
GC.Collect();
}
}
异常情况
异常来自 HRESULT:0x800A03EC
用户代码未处理 System.Runtime.InteropServices.COMException
Message="异常来自 HRESULT:0x800A03EC"
Source="Microsoft.Office.Interop.Excel"
ErrorCode=-2146827284
StackTrace:
在 Microsoft.Office.Interop.Excel.ApplicationClass.Save(Object Filename)
在 _Default.CreateExcelTable() 位置 d:\我的文档\Visual Studio 2005\WebSites\demo_Excel\Default.aspx.cs:行号 74
在 _Default.Page_Load(Object sender, EventArgs e) 位置 d:\我的文档\Visual Studio 2005\WebSites\demo_Excel\Default.aspx.cs:行号 19
在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
在 System.Web.UI.Control.OnLoad(EventArgs e)
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
展开
 我来答
dsg327
2018-01-02
知道答主
回答量:35
采纳率:0%
帮助的人:16.8万
展开全部
我遇到了遇到与你相同的问题,后来发现是要打开的excel模板无法打开错误,模板文件错误。
maxbxb1
2009-03-17 · 超过54用户采纳过TA的回答
知道小有建树答主
回答量:312
采纳率:0%
帮助的人:126万
展开全部
好像没这么复杂!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lackyhuang
2009-03-16 · TA获得超过633个赞
知道小有建树答主
回答量:813
采纳率:0%
帮助的人:862万
展开全部
这个问题不好说了,自己加个断点看下具体是在哪个地方报的错,也好对症下药啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
server126
2009-03-16 · TA获得超过597个赞
知道小有建树答主
回答量:877
采纳率:0%
帮助的人:184万
展开全部
是不是水晶报表呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式