DB にクエリを実行し、結果を Excel ファイルに出力する C# アプリケーションを作成しました。プログラム自体は正常に動作します。ただし、アプリケーションの実行中にまったく関係のない 2 つ目の Excel ファイルを開くと、例外が発生してプロセスが停止します。
ここで、プログラム自体で可視性を false に設定しました。2 番目の無関係な Excel ファイルを開いた後、生成されていたファイルが突然開いて表示され、例外が発生します。
何が問題を引き起こしているのか、またはそれを解決する方法を知っている人はいますか?
コードの関連部分は次のとおりです。行 worksheet.get_Range(currCol.GetString() + excelRow, Missing.Value).Formula = item.ToString(); で例外が発生します。
例外自体は次のとおりです。「HRESULT からの例外: 0x800AC472」
Application exc = new Application();
//Makes the Excel file not visible
exc.Visible = false;
exc.UserControl = false;
exc.DisplayAlerts = false;
Workbooks workbooks = exc.Workbooks;
Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Sheets sheets = workbook.Worksheets;
Worksheet worksheet = (Worksheet)sheets.get_Item(1);
int excelRow = 1;
ExcelChar currCol = new ExcelChar('A');
System.Data.DataTable testTable = dbConnection.searchQuery("Select * from testTable").Copy();
if (worksheet == null)
{
Console.WriteLine("ERROR: worksheet == null");
}
foreach (System.Data.DataRow row in testTable.Rows)
{
foreach (var item in row.ItemArray)
{
worksheet.get_Range(currCol.GetString() + excelRow, Missing.Value).Formula = item.ToString();
currCol.Add(1);
}
excelRow++;
currCol = new ExcelChar('A');
}