System.String[] 当datagridview保存为csv时

System.String[] when datagridview is saved to csv

此代码将 datagridview 转换为 csv 文件。 这段代码工作正常......但是当升级到 VS 2013 时它停止工作......在我的 Test2.txt 文件中不断返回 System.String[] ..

Dim path As String = "D:\Test2.txt"
        r = -1
        Dim headers = (From header As DataGridViewColumn In Me.DataGridView1.Columns.Cast(Of DataGridViewColumn)() Select header.HeaderText).ToArray()
        Dim rows = From row As DataGridViewRow In Me.DataGridView1.Rows.Cast(Of DataGridViewRow)() _
                   Where Not row.IsNewRow Select Array.ConvertAll(row.Cells.Cast(Of DataGridViewCell).ToArray, Function(c) If(c.Value IsNot Nothing, c.Value.ToString, ""))
        Using sw As New IO.StreamWriter(path)
            '  MsgBox(String.Join(",", headers))
            sw.WriteLine(String.Join(",", headers))
            For Each r In rows
                sw.WriteLine(String.Join(",", r))
            Next
        End Using

这是将 DataGridView 内容写入 CSV 文件的一种方法,我相信您可以调整它以满足您的需要:

    Dim path As String = "C:\Test2.txt"
    Using sw As New IO.StreamWriter(path)
        Dim rowcontents As New List(Of String)
        For Each col As DataGridViewColumn In DataGridView1.Columns
            rowcontents.Add(col.HeaderText)
        Next
        sw.WriteLine(String.Join(",", rowcontents))
        For Each r As DataGridViewRow In DataGridView1.Rows
            rowcontents.Clear()
            For Each c As DataGridViewCell In r.Cells
                rowcontents.Add(c.Value)
            Next
            sw.WriteLine(String.Join(",", rowcontents))
        Next
    End Using