com исключение HRESULT: 0x800A03EC - PullRequest
2 голосов
/ 05 декабря 2011

Я пишу AC # программу для копирования листа.Я получил ошибку исключения (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);
    }
}

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

1 Ответ

0 голосов
/ 05 декабря 2011

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

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

...