通过.Net生成Excel,做奇怪的事情
问题描述:
早上好,
我有一个奇怪的事情发生在我通过.Net创建的Excel WorkSheet中。 我加载一个现有的工作簿通过.Net生成Excel,做奇怪的事情
Dim _xlApp As New Excel.Application
Dim _xlWorkbook As Excel.WokBook = _xlApp.Workbooks.Open(_templateFileName)
将其设置为填充它(用于调试)之前可见
_xlApp.Visible = True
然后我去填充现有的模板。
Private Sub GenerateOceanFreightGrid()
Dim columnCount As Integer = 4 ' _standardColumnCount
Dim columnInsertPosition As Integer = 5
If MyBooleanValue() Then
_xlSheet.Columns(4).Insert()
_xlSheet.Cells(7, 4) = "My Header Value"
columnInsertPosition += 1
columnCount += 1
End If
在i设置断点的“私人小组根..”线,并且步骤通过线的代码行,它插入用于声明的每个变量的新列,所以在这种情况下,它将插入两个它甚至击中“如果MyBooleanValue()...”行(我可以看到它实际发生,因为Excel应用程序可见)列之前。但是,如果我不设置断点,只是让代码直接通过这不会发生。
没有多线程发生或其他任何我怀疑会对代码有任何影响的东西。 我明显的解决办法是不设置断点,我只是想知道是否有人看到过这种情况发生之前以及出于何种原因? 谢谢
答
我怀疑这是由于某些属性,调试器正在评估,以帮助 - 但它是一个邪恶的属性与副作用添加列。
我假设你没有任何Watch变量可以明确地做到这一点?
欢迎来到Office开发! – 2010-02-04 10:10:57
是的,它迄今为止一分钟笑:) – Ben 2010-02-04 10:23:06
我们正在与Excel互操作多年。不同的版本不同的服务包 - 这很难。而我们放弃了,只是买了第三方组件。 – 2010-02-04 10:27:22