【问题标题】:Importing a one line CSV in to a multi row datagridview将单行 CSV 导入多行数据网格视图
【发布时间】:2019-08-09 14:15:55
【问题描述】:

我可以将 CSV 文件导入 datagridview,只要“,”匹配列并且 csv 中的每个新行等于一个新行。我的问题是,我有一个文件要转换为 CSV,但它只有一行长。 https://ssd-api.jpl.nasa.gov/cad.api

我完全不知所措。

我已经尝试了一些用于其他程序的基本代码。

    For Each line As String In System.IO.File.ReadAllLines("\test.csv")
        DataGridView1.Rows.Add(line.Split(","))
    Next

每个新行都应该以类似的开头。 (2006QQ23)

【问题讨论】:

  • 因为看起来每一行都应该包含 10 个字段,您可以将 line.Split(",") 分成 10 个块吗?或者甚至在[ 上拆分,看起来它会给你想要的记录,然后在, 上拆分每个记录?
  • 这是一个 json 而不是 csv。
  • 谢谢 Blaze,我会试一试的。 Alessandro,是的,我对 json 非常陌生。我做了一些研究,但还没有弄清楚如何调用实例。
  • 我在@blaze_125 的帮助下弄明白了,谢谢!

标签: vb.net csv datagridview


【解决方案1】:

这是我为得到我需要的东西所做的:

Imports System.ComponentModel
Imports System.Net
Imports System.IO


Public Class Form1


    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        DownLoadFileInBackground2("https://ssd-api.jpl.nasa.gov/cad.api")
        LoadRaw()

    End Sub

    Public Sub DownLoadFileInBackground2(ByVal address As String)
        Dim uri As Uri = New Uri(address)
        Dim client As WebClient = New WebClient()
        Try
            Dim mywebclient As New System.Net.WebClient()
            AddHandler client.DownloadFileCompleted, AddressOf wc_downloadComplete
            mywebclient.DownloadFile(uri, "neo.raw")
        Catch

        End Try

    End Sub

    Private Shared Sub wc_downloadComplete()

    End Sub

    Private Sub LoadRaw()
        TextBox1.Text = System.IO.File.ReadAllText("neo.raw")
        If TextBox1.Text.Contains("[[") Then
            Dim dogIndex As Integer = TextBox1.Text.IndexOf("[[")
            TextBox1.Text = TextBox1.Text.Substring(dogIndex, TextBox1.Text.Length - dogIndex)
        End If
        TextBox1.Text = Replace(TextBox1.Text, "],[", vbNewLine)
        TextBox1.Text = Replace(TextBox1.Text, "[", "")
        TextBox1.Text = Replace(TextBox1.Text, """", "")
        My.Computer.FileSystem.WriteAllText("conv.raw", TextBox1.Text, False)
        For Each line As String In File.ReadAllLines("conv.raw")
            DataGridView1.Rows.Add(line.Split(","))
        Next

    End Sub
End Class

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多