【发布时间】:2017-09-07 19:21:34
【问题描述】:
我尝试了几乎所有可以在 StackOverflow 上找到的东西,但我的代码不断抛出以下错误:
HRESULT 异常:0x800A03EC
与delete()就行了。我希望你们能帮助我。
这是我当前的代码
var xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook book =
xlApp.Workbooks.Open(File_name);
xlApp.DisplayAlerts = false;
Excel.Worksheet worksheet = (Excel.Worksheet)book.Worksheets[2];
worksheet.Delete();
book.Worksheets.Add();
xlApp.DisplayAlerts = true;
book.Save();
book.Close();
xlApp.Quit();
Marshal.ReleaseComObject(worksheet);
Marshal.ReleaseComObject(book);
Marshal.ReleaseComObject(xlApp);
这是我尝试过的其他代码:
oXL.DisplayAlerts = false;
worksheet = (Excel.Worksheet)theWorkbook.Sheets[i];
((Excel.Worksheet)theWorkbook.Sheets[i]).Delete();
oXL.DisplayAlerts = true;
oWB.Save();
oWB.Close(false, missing, missing);
oSheet = null;
oWB = null;
oXL.Quit();
还有一些变化
Microsoft.Office.Interop.Excel.Application oXL = new Microsoft.Office.Interop.Excel.Application();
Excel.Workbook oWB;
Excel.Worksheet oSheet;
Excel.Workbooks oMWB;
我正在使用这个参考:
using Excel = Microsoft.Office.Interop.Excel;
【问题讨论】:
-
HRESULT 异常:0x800A03EC
-
哪一行给出了错误?进行实际删除?您是否已调试并确保所有对象都已初始化并且您期望什么?你确定工作表存在吗?此外,有时还有隐藏的工作表,比如保存 print_area 的工作表。通过索引引用工作表是可能的,您实际上是在尝试删除无法删除的特殊工作表。索引 2 处的工作表名称是什么?
-
在第一个例子中这一行:worksheet.Delete();在第二个:((Excel.Worksheet)theWorkbook.Sheets[i]).Delete();
-
我更新了我的评论。请参阅我的其他问题。
-
我调试了多次,对象被初始化,工作表确实存在。床单也没有隐藏。工作表的名称是“sheet2”