2011-12-05 88 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文件的開源閱讀器並使用它們做所有事情?速度會飛快,我保證你不會得到這些錯誤!

相關問題