現時点では、小さなアプリケーションがあり、オブジェクトから情報を取得して、ファイルに書き込むことができた Microsoft.office.interop クラスを使用して Excel ファイルに表示する必要があります。レコードが追加されていますが、3 回に 1 回試してみると、スプレッドシートは 300 番目と 600 番目のレコードの間のどこかでいっぱいになりません。合計で 6,000 あり、毎回壊れていません。終了後にチェックを入れて、最後のレコードは入力されていますが、コードはそのポイントに到達せず、何が起こっているのかわかりません
また、問題をデバッグする方法もわかりません。6,000 ループを実行して停止を確認する必要があるためです。
コードの小さなセクションはここにあります
loadExcel(incidents, WorkSheetName)
If WorkSheetName.Cells(DBObject.HighestInci + 1, 6) Is Nothing Then
MessageBox.Show("Failed to fill spreadsheet, Retrying now.")
loadExcel(incidents, WorkSheetName)
End If
上記は、以下のメソッドを呼び出してチェックするコードです
Private Sub loadExcel(ByVal incidents As List(Of Incident), ByRef WorkSheetName As Excel.Worksheet)
Dim i = 2
For Each inc As Incident In incidents
WorkSheetName.Cells(i, 1) = inc.DateLogged
WorkSheetName.Cells(i, 2) = inc.DateClosed
WorkSheetName.Cells(i, 3) = Convert.ToString(inc.DateLogged).Substring(3, 2)
i += 1
Next
End Sub
前もって感謝します
編集
私はそれをある種のバッファにロードしてから、それらがすべて更新されたら書き込むことが、現在それぞれを個別にロードして書き込むのではなく、行く方法になると考えていますか? しかし、どこから始めればよいかわかりませんか?