2011-12-05 59 views
2

我写了一个C#程序的副本。当我调用WorkSheet.Copy方法时,我得到异常错误(0x800A03EC),直到105次。 这是我的代码片段:using Microsoft.Office.Interop.Excel;COM例外HRESULT:0x800A03EC

private void CreateSheet(string dst_fileName) 
{ 
    object cell1 = "A2"; 

    ApplicationClass app = null; 
    Workbook book = null; 
    Worksheet sheet = null; 
    Worksheet sheet_to_copy = null; 
    int i=0; 

    try 
    { 
     app = new ApplicationClass(); 
     app.Visible = false; 
     app.ScreenUpdating = false; 
     app.DisplayAlerts = false; 

     book = app.Workbooks.Open(dst_fileName, 0, false, 5, "", "", true, 
            XlPlatform.xlWindows, 
            "\t", false, false, 0, true, 1, 0); 

     // Reference to the worksheet 
     sheet_to_copy = (Worksheet)book.Worksheets[1]; 

     for(;i<listViewPrg.Items.Count;i++) 
     { 
      sheet = (Worksheet)book.Worksheets[book.Worksheets.Count]; 
      // Copy the worksheet to the end of the worksheets 
      sheet_to_copy.Copy(Missing.Value, sheet); 
      sheet.Name = "NewSheet(" + book.Worksheets.Count + ")"; 
     } 
     book.SaveAs(dst_fileName, Missing.Value, Missing.Value, Missing.Value, 
        Missing.Value, Missing.Value, XlSaveAsAccessMode.xlNoChange, Missing.Value, 
        Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
    finally 
    { 
     QuitExcel(app); 
    } 
} 

我找不到任何解决方法。有人能给我一个提示来解决这个问题吗? 非常感谢。

+0

如果一开始你失败了,再次调用它...... 105次......你是否在你使用的接口的上下文中查找了HRESULT,以查看它指示的错误? – ssube

回答

0

可能你有一些损坏的Excel注册表项或左右?

为什么不尝试使用excel文件的开源阅读器并使用它们做所有事情?速度会飞快,我保证你不会得到这些错误!

相关问题