com исключение HRESULT: 0x800A03EC
Я пишу программу AC# для копирования листа. Я получил ошибку исключения (0x800A03EC) при вызове метода WorkSheet.Copy до 105 раз. Это мой фрагмент кода: using 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 ответ
Возможно, у вас есть некоторые поврежденные записи реестра Excel или так?
Почему бы вам не попробовать использовать программу чтения файлов Excel с открытым исходным кодом и делать все, используя их? Скорость взлетит до небес, и я гарантирую, что вы не получите этих ошибок!