Vb.net VB电子表格写锁

Vb.net VB电子表格写锁,vb.net,interop,spreadsheet,Vb.net,Interop,Spreadsheet,目前,我有一个小应用程序,需要从一个对象获取信息并将其显示到excel文件中,使用Microsoft.office.interop类,我已经能够写入该文件,它会逐个显示正在添加的记录,但我大约每三次尝试一次,电子表格在第300条和第600条记录之间的某个地方停止填充,我总共有6000条记录,并且每次都没有打破,我在完成后检查最后一条记录是否已填充,但代码从未达到该点,我不确定发生了什么 我也不知道如何调试这个问题,因为这意味着要通过6000个循环来检查它是否停止。。。哪种情况可能都不会发生 这里

目前,我有一个小应用程序,需要从一个对象获取信息并将其显示到excel文件中,使用Microsoft.office.interop类,我已经能够写入该文件,它会逐个显示正在添加的记录,但我大约每三次尝试一次,电子表格在第300条和第600条记录之间的某个地方停止填充,我总共有6000条记录,并且每次都没有打破,我在完成后检查最后一条记录是否已填充,但代码从未达到该点,我不确定发生了什么

我也不知道如何调试这个问题,因为这意味着要通过6000个循环来检查它是否停止。。。哪种情况可能都不会发生

这里是代码的一小部分

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
提前谢谢

编辑


我想把它加载到某种缓冲区,然后在它们都被更新后再写,而不是现在分别加载和写?但是我不知道从哪里开始?

我已经解决了我的问题,上面的Excel被打开,它开始逐行打印到电子表格中,问题是与Excel的任何交互都会导致流程冻结

加入

ExcelApp.visible = false 
在执行该过程之前

ExcelApp.visible = true 

之后,一切正常,然后打开文件

您是否检查了输入数据?incvar中的某些错误可能是问题的潜在根源。添加System.Diagnostics.Debug.Writeline。。。。在事件循环内部。