来自HRESULT的异常:0x800A03EC引发了一般异常 [英] Exception from HRESULT: 0x800A03EC General exception was raised

查看:175
本文介绍了来自HRESULT的异常:0x800A03EC引发了一般异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我正在尝试打开一个excel并使用带有C#3.5的ASP.net读取内容,但是系统抛出以下错误. Workbooks.Open(字符串文件名,对象更新链接,对象只读,对象格式,对象密码,对象WriteResPassword,对象IgnoreReadOnlyRecommended,对象起源,对象定界符,对象可编辑,对象通知,对象转换器,对象AddToMru)
.来自AeS的DataUploader.IL.cDataUploader.GetExcelSheetsList(String ExcelFilePath)
.AeS.DataUploader.PL.FrmDataUpload.FillSheetCombo()
位于AeS.DataUploader.PL.FrmDataUpload.btnBrowse_Click(Object sender,EventArgs e)异常HRESULT:引发了0x800A03EC一般异常


如您所见,错误恰好在Windows 2008 Server和Office 2003下的Excel.Workbooks.Open方法中引发,与Windows 2003和XP完美兼容.
DCOM设置已全部设置.请找到下面的代码.


objXlApp = new Excel.Application();
//objXLWs = new Excel.Worksheet();
int strLen;
DataSet SheetList = new DataSet();
SheetList.Tables.Add("SheetList");
SheetList.Tables ["SheetList"].Columns.Add("SheetName");
if(ExcelFilePath.Trim().Length> 0)
{
字符串strFileName = ExcelFilePath;
strLen = ExcelFilePath.Length;
if(strFileName!=" ")
{
if(strFileName.Substring(strLen-3,3)=="xls")
{
objXlApp.Workbooks.Open(strFileName,Type. Type.Missing,Type.Missing,Type.Missing,
Type.Missing,Type.Missing,Type.Missing,Type.Missing,
Type.Missing,Type.Missing,Type.Missing, Type.Missing);
foreach(objXlApp.Worksheets中的Excel._Worksheet objXLWs)
{
//CHelperFunctions.TraceMe("D:/LogTrace.txt",开始加载" List");
DataRow Dr = SheetList.Tables ["SheetList"].NewRow();
Dr ["SheetName"] = objXLWs.Name.ToString();
SheetList.Tables ["SheetList"].Rows.Add(Dr);
SheetList.Tables ["SheetList"] ] .AcceptChanges();

//cboExcel.Items.Add(); //将xlWs.name添加到列表框
}
}
}
}
objXlApp.Quit();
//objXLWs = null;
objXlApp = null;
返回SheetList;



Hi

I am trying to open a excel and read the contents using ASP.net with C# 3.5, but the system throws following error.

Error at Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru)
at AeS.DataUploader.IL.cDataUploader.GetExcelSheetsList(String ExcelFilePath)
at AeS.DataUploader.PL.FrmDataUpload.FillSheetCombo()
at AeS.DataUploader.PL.FrmDataUpload.btnBrowse_Click(Object sender, EventArgs e) Exception from HRESULT: 0x800A03EC General exception was raised


As u see above the error is thrown exactly in the  Excel.Workbooks.Open method under
Windows 2008 server and office 2003, while it works perfectly with Windows 2003 and XP.
The DCOM settings are all set. Please find the code below. Kindly help !


objXlApp = new Excel.Application();
//objXLWs = new Excel.Worksheet();
int strLen;
DataSet SheetList = new DataSet();
SheetList.Tables.Add("SheetList");
SheetList.Tables["SheetList"].Columns.Add("SheetName");
if (ExcelFilePath.Trim().Length > 0)
{
string strFileName = ExcelFilePath;
strLen = ExcelFilePath.Length;
if (strFileName != "")
{
if (strFileName.Substring(strLen - 3, 3) == "xls")
{
objXlApp.Workbooks.Open(strFileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing);
foreach (Excel._Worksheet objXLWs in objXlApp.Worksheets)
{
//CHelperFunctions.TraceMe ("D:/LogTrace.txt", "Getting into load List");
DataRow Dr = SheetList.Tables["SheetList"].NewRow();
Dr["SheetName"] = objXLWs.Name.ToString();
SheetList.Tables["SheetList"].Rows.Add(Dr);
SheetList.Tables["SheetList"].AcceptChanges();

//cboExcel.Items.Add(); //add xlWs.name to list box
}
}
}
}
objXlApp.Quit();
//objXLWs = null;
objXlApp = null;
return SheetList;



推荐答案

放置一个断点在调用Open的行上. strFileName的值是什么?这应该是一条完整的道路.

顺便说一句,使用Path类中的方法来处理文件名.那就是他们在那里的目的.例如,该if语句可能是:

if(Path.GetExtension(strFileName)=="xls")

不是当前正在解析的字符串
Put a breakpoint on the line calling Open.  What is the value of strFileName?  It should be a full  path. 

By the way, use the methods in the Path class to manipulate filenames.  That's what they're there for.  For example, that if statement, could be:

if (Path.GetExtension(strFileName) == "xls")

Instead of the string parsing you're currently doing.


这篇关于来自HRESULT的异常:0x800A03EC引发了一般异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆