VB.NET 2008:导入CSV&仅提取某些命名列

时间:2013-09-30 21:11:08

标签: vb.net csv import export

我正在使用VB.NET 2008,而我正在尝试做的事情非常简单,但我似乎无法弄明白。

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

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

1 个答案:

答案 0 :(得分:0)

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

从网上下载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 - 我确定那里有开源版本。我将此类软件用于短期任务,除非您购买源代码并进行编译,否则不适合生产。