我有一个试图折叠整个字段的代码。 在foreach循环的最开始(使用Worksheet),它崩溃了陈述
抛出异常:CSVDiffUtility.exe中的“System.Runtime.InteropServices.COMException”
其他信息:消息过滤器指示应用程序正忙。 (来自HRESULT的异常:0x8001010A(RPC_E_SERVERCALL_RETRYLATER))
做了一些研究并通过添加线程睡眠来解决这个问题。
然而,我仍然遇到
抛出异常:mscorlib.dll中的'System.Runtime.InteropServices.COMException'
附加信息:来自HRESULT的异常:0x800A03EC
代码点击field.ShowDetail = false;
这有什么理由可以吗?
PS。
此外,尽管我的effor杀死了excel应用程序,但所有异常代码都没有做任何事情。这意味着EXCEL.exe仍然留在任务管理器上。
任何帮助都将不胜感激。
static void Main(string[] args)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
try
{
Microsoft.Office.Interop.Excel.Workbook interopExcelWorkBook = excelApp.Workbooks.Open(FileDirectoryKeeper.DiffXLSXPath);
Thread.Sleep(500); // yes this is necessary
try
{
foreach (Microsoft.Office.Interop.Excel.Worksheet sheet in interopExcelWorkBook.Worksheets)
{
foreach (Microsoft.Office.Interop.Excel.PivotTable pivotTable in sheet.PivotTables() as Microsoft.Office.Interop.Excel.PivotTables)
{
foreach (Microsoft.Office.Interop.Excel.PivotField field in pivotTable.PivotFields() as Microsoft.Office.Interop.Excel.PivotFields)
{
field.ShowDetail = false;
}
}
}
interopExcelWorkBook.Save();
}
catch (Exception e)
{
Console.WriteLine("---------------------------");
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
Console.WriteLine("---------------------------");
}
finally
{
interopExcelWorkBook.Close(false);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(interopExcelWorkBook);
interopExcelWorkBook = null;
}
}
catch (Exception e)
{
Console.WriteLine("---------------------------");
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
Console.WriteLine("---------------------------");
}
finally
{
excelApp.Quit();
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(excelApp);
excelApp = null;
}
... continues on ...
更新:
我正在跟踪堆栈,看到System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
是造成问题的那个。