StringBuilder Добавить замену данных-выпуск - PullRequest
0 голосов
/ 01 октября 2018

Из очень большого файла Excel, мы зациклим и сохраняем значения из 3 столбцов в переменные (uName (Row), mgrName (Row), title (Row)).Из этого Excel мы также получаем количество строк.

Проблема возникает, когда я пытаюсь использовать StringBuilder для создания отдельного файла .xls для последующего использования в приложении.Код у меня выглядит следующим образом:

    Dim XLstring As System.Text.StringBuilder = New System.Text.StringBuilder
    Dim newfile As System.IO.StreamWriter
    Dim fileTitle

    XLstring.Append("Name,Manager,Title" & vbCrLf)

    For X As Integer = 2 To countrows
        If X = countrows Then
            MsgBox(countrows)
            MsgBox(uName(X) & "," & mgrName(X) & "," & title(X))
        End If

        XLstring.Append(uName(X) & "," & mgrName(X) & "," & title(X) & vbCrLf)
    Next

    fileTitle = System.DateTime.Now.ToString("yy-MM-dd hh-mm-ss") & ".xls"
    filePath2 = "myPath" & fileTitle

    newfile = File.CreateText(filePath2)
    newfile.WriteLine(XLstring)

Это работает по большей части.Я вижу, что с помощью MsgBox я получаю правильное количество строк, а также правильную информацию в последнем ряду.Однако когда я открываю полученный файл .xls, в конце файла отсутствуют записи.Кроме того, если бы я изменил

XLstring.Append("Name,Manager,Title" & vbCrLf)

на что-то вроде

XLstring.Append("Name,Manager" & vbCrLf)

, точное число символов, удаленных из строки добавления, теперь будет успешно отображаться в конце файла.где информация отсутствует.

Есть ли какая-то странная функциональность, которую я не понимаю, используя эти функции?Я полностью потерян и не понимаю этого поведения.

1 Ответ

0 голосов
/ 01 октября 2018

Вам нужно закрыть файл, когда вы закончите:

newfile.Close()

В примечании, ваш файл сохраняется с расширением XLS, но так как вы экспортируете список через запятуюзначения, я бы предложил сохранить в формате CSV.

...