为什么我的CSV Writer跳过一些行? vb.net

时间:2014-06-05 08:20:54

标签: vb.net csv gridview

我不知道为什么我的CSV编写器会跳过某些行。我试图今天导出一个gridview,并按巧合看到它。网格有250行。它写入1-60然后继续140-250。 excel表中缺少61-139?

代码:首先我创建一个列所有列,因为writer方法也应该只能写特定的列,但这是另一个按钮。 然后将网格和列表提供给csv Writer。

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Dim list As List(Of Integer) = New List(Of Integer)


        For Each column As DataGridViewColumn In datagridview2.Columns
            list.Add(column.Index)
        Next

    Module3.csvwriter(list, datagridview2)

    MsgBox("exportieren beendet")
End Sub

csv-Writer为每个数据行创建一个csv-body-String。 对于每一行,如果columnindex在列表中,则将每个columnvalue附加到body。 最好的是,我已经看到该方法如何构建第61行,但是在csv中缺少它:/

Public Sub csvwriter(list As List(Of Integer), grid As DataGridView)

    Dim body As String = ""
    Dim myWriter As New StreamWriter(Importverzeichnis.savecsv, True, System.Text.Encoding.Default)

    Dim i As Integer

    For i = 0 To grid.Rows.Count - 1

        For ix = 0 To grid.Columns.Count - 1

            If list.Contains(ix) Then

                If grid.Rows(i).Cells(ix).Value IsNot Nothing Then
                    body = body + grid.Rows(i).Cells(ix).Value.ToString + ";"

                Else
                    body = body + ";"
                End If
            End If
        Next
        myWriter.WriteLine(body)
        body = ""
    Next


    myWriter.Close()




End Sub

有人有想法吗?我忽视了什么吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案。  1. csv文件已完成。每一行都在那里。

  1. 问题是或者是,在我的数据行中是一个“逃脱分隔符的标志;签名。

  2. 要解决此问题,我现在将文件保存为.txt文件, 因为每次打开文件时都会询问用户,哪一个是分隔符,这是转义符号。这样用户被迫放入正确的设置,而.csv文件使用标准配置.. < / p>