Генерация Excel через .Net делает странные вещи - PullRequest
1 голос
/ 04 февраля 2010

Доброе утро,
У меня происходит довольно странная вещь с таблицей Excel, которую я создаю через .Net. Я загружаю существующую книгу

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

Когда я устанавливаю точку останова в строке «Private Sub Gen ..» и шаг за шагом пересекаю код, он вставляет новый столбец для каждой объявленной переменной, поэтому в этом случае он вставит два столбца до попадает в строку «Если MyBooleanValue () ...» (я могу наблюдать, как это происходит на самом деле из-за видимого приложения Excel). Однако, если я не установил точку останова и просто позволил коду проходить прямо, этого не произойдет.
Нет многопоточности или что-то еще, что, как я подозреваю, повлияет на код. Моя очевидная работа заключается в том, чтобы не устанавливать точку останова, мне просто интересно, видел ли кто-нибудь это раньше и по какой причине? Спасибо

1 Ответ

1 голос
/ 04 февраля 2010

Я подозреваю, что это связано с некоторым свойством, которое отладчик оценивает, чтобы быть полезным - но это злое свойство с побочным эффектом добавления столбца.любые переменные Watch, которые могли бы делать это явно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...