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