C#中 将数据导出到Excel时出现的我无力解决的问题,求高手解决。 30

由於发生下列错误,为具有CLSID{00024500-0000-0000-C000-000000000046}的元件撷取COMClassFactory失败:8004015... 由於发生下列错误,为具有 CLSID {00024500-0000-0000-C000-000000000046} 的元件撷取 COM Class Factory 失败: 80040154。
描述: 在执行目前 Web 要求的过程中发生未处理的例外情形。请检阅堆叠追踪以取得错误的详细资讯,以及在程式码中产生的位置。

例外详细资讯: System.Runtime.InteropServices.COMException: 由於发生下列错误,为具有 CLSID {00024500-0000-0000-C000-000000000046} 的元件撷取 COM Class Factory 失败: 80040154。

原始程式错误:

在执行目前 Web 要求期间,产生未处理的例外状况。如需有关例外状况来源与位置的资讯,可以使用下列的例外状况堆叠追踪取得。

堆叠追踪:

[COMException (0x80040154): 由於发生下列错误,为具有 CLSID {00024500-0000-0000-C000-000000000046} 的元件撷取 COM Class Factory 失败: 80040154。]
Toppine.SlopeASD.Web.Web.fs_RP_Inspection.OutputExcel(DataTable dt) +111
Toppine.SlopeASD.Web.Web.fs_RP_Inspection.btnDownLoad_Click(Object sender, EventArgs e) +874
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

以上就是报错的信息
关键代码:
1、添加一个Microsoft.Office.Interop.Excel.dll组件
2、命名空间:using Excels = Microsoft.Office.Interop.Excel;
3、Excels.Application excel;// = new Application(); //少量后台代码
int rowIndex = 3;
Excels._Workbook xBk;
Excels._Worksheet xSt;
excel = new Excels.Application();
xBk = excel.Workbooks.Add(true);
xSt = (Excels.Worksheet)xBk.ActiveSheet;
xSt.get_Range(xSt.Cells[2, 11], xSt.Cells[2, 13]).Merge();
xSt.get_Range(xSt.Cells[2, 11], xSt.Cells[2, 13]).HorizontalAlignment = Excels.XlHAlign.xlHAlignCenterAcrossSelection;
xSt.get_Range(xSt.Cells[2, 15], xSt.Cells[2, 19]).Merge();
xSt.get_Range(xSt.Cells[2, 15], xSt.Cells[2, 19]).HorizontalAlignment = Excels.XlHAlign.xlHAlignCenterAcrossSelection;
xSt.get_Range(xSt.Cells[2, 20], xSt.Cells[2, 22]).Merge();
xSt.get_Range(xSt.Cells[2, 20], xSt.Cells[2, 22]).HorizontalAlignment = Excels.XlHAlign.xlHAlignCenterAcrossSelection;

注:这是在做导出数据到Excel的时候出现的问题,我就引用了一个,该问题在我的项目版本中没有出现,但是到其他版本中就出现了,我也不知道是电脑的问题还是版本的问题或是其他什么问题,总之应该不会是人品的问题,

以上就是所有的问题情况了,请各位高手多多指教
展开
 我来答
唐宋英悟
2011-05-14 · TA获得超过1232个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:0
展开全部
代码上取数只有一次,循环按代码逻辑来看,也只能把表中的数全部写道Excel中,而你的Excel中确有2次数,判断为,肯定有地方默认刷新上次操作了,你点击按钮这个操作完成后,触发了刷新功能,断点调试下就看出来了
七终多E
2011-05-14 · TA获得超过1.4万个赞
知道大有可为答主
回答量:3756
采纳率:46%
帮助的人:3425万
展开全部
OFFICE是否安装的是那种网上的绿色版 还是什么的 建议重新安装一次完整的试一试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式