com исключение HRESULT: 0x800A03EC

Я пишу программу С# для копирования листа. Я получил ошибку исключения (0x800A03EC) при вызове WorkSheet.Copy до 105 раз. Это мой фрагмент кода: использование Microsoft.Office.Interop.Excel;

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);
    }
}

Я не могу найти никакого решения по этому поводу. Может ли кто-нибудь дать мне подсказку, чтобы решить эту проблему? Большое спасибо.


person user906919    schedule 05.12.2011    source источник
comment
Если сначала вы потерпите неудачу, вызовите его снова... 105 раз... вы искали этот HRESULT в контексте интерфейса, который вы используете, чтобы увидеть, на какую ошибку он указывает?   -  person ssube    schedule 05.12.2011


Ответы (1)


Возможно, у вас есть поврежденные записи реестра Excel или около того?

Почему бы вам не попробовать использовать программу чтения файлов excel с открытым исходным кодом и делать все с ее помощью? Скорость взлетела бы до небес, и я гарантирую, что вы не получите этих ошибок!

person Alpha01    schedule 05.12.2011