0

我正在使用 VB.NET 2008,我想做的事情非常简单,但我似乎无法弄清楚。

我有一个包含大约 200 列和 50,000 行的 CSV 文件,其中第一行有列标题。我需要读取此文件并将三个命名列(样本 ID 号、分析日期、P 计数)导出到制表符分隔的 .TXT 文件。根据创建原始 CSV 的机器,列的顺序可能不同,所以我肯定需要通过命名列导出它。

我可以闭着眼睛在控制台 C 上整天这样做;但是,我的老板知道我将在几个月后离开,并要求我在 VB.NET 中执行此操作,以便将来其他人可以进行调整。我花了几天时间浏览这个网站和其他人试图找到解决方案。我已经设法将 CSV 放入 DataGridView(尽管没有列标题,呃),但我不知道如何从中获取数据。老实说,我只是不习惯这种 OOP 的东西。如果有人愿意为此提供帮助,甚至引导我朝着正确的方向前进,我将不胜感激。

4

1 回答 1

0

不是免费的,但几乎是(5 美元,免费试用) - 我使用 Kellerman Software 的 .Net CSV 报告。

从 Web 下载 CSV 的示例,适用于本地文件:

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    Using client As New WebClient ' Imports System.Net needed
        ' Download the web page as a string.
        Dim value As String = client.DownloadString("http://www.jotform.com/csv/@#&*2131238*((")
        Dim rdr As New CsvReader ' Imports KellermanSoftware.CsvReports needed
        Dim dt As DataTable = rdr.CsvStringToDataTable(value)
        dgv1.DataSource = dt
    End Using
End Sub

一旦数据在 DataTable 中,假设源具有标题,您将拥有命名列。


请注意,这是许可软件,需要包含 dll - 我确信某处有开源版本。我将这种类型的软件用于短期任务,除非您购买源代码并将其编译,否则不适用于生产。

于 2013-09-30T21:40:32.017 回答