将多个CSV文件中的数据导入到Excel表格中

3
我需要将50个类似的csv文件中的数据导入到一个单独的excel工作表中。有没有办法只从每个文件中获取选定的列并将它们放在一个工作表中。
我的csv文件结构:所有文件中都有几个完全相同的列(我想把它们放在excel中),然后是一个具有相同列名但不同数据的列,我想在excel工作表中将它们并排放置并以不同的名称命名,我不想要csv文件中剩余的所有其他列。
简而言之,
1.读取所有csv文件, 2.获取所有普通csv中的列,并放入excel工作表中。 3.现在从每个文件中取出带有相同标题但不同数据的一列,并在excel工作表中一个接一个地放置,并以csv文件名进行命名。 4.留下其余的列。 5.将excel工作表写入excel文件。
最初,我认为这可以很容易地完成,但考虑到我在学习阶段的编程技能,这对我来说非常困难。请帮忙。

好的,经过长时间的尝试,我感到非常沮丧,因为什么都不起作用。然而,实际上我收到的CSV文件不知何故已经损坏了。好吧,我将使用样本CSV再次测试我的代码,然后在这里发布供参考。感谢您的帮助。 - Indigo
3个回答

3

Microsoft Text Driver 允许您在 DataSet 中读取 CSV 数据,从而使数据操作变得简单。

这个 Stack Overflow 问题 是一个很好的起点。


3

2

通过非常简单的编码,我能够读取文件。现在,我们需要做的唯一一件事情就是将这个代码变得更加花哨,以便循环遍历给定文件夹中的所有CSV文件并收集数据。一旦我们读取了数据,它可以按照我们想要的方式进行过滤并放入Excel中。

当然,Excel本身可以导入CSV,但每次这样做并不那么实用。而且,我们可以将代码添加到应用程序中以便灵活使用,这正是我正在尝试做的。

public static System.Data.DataTable GetDataTable(string strFileName)

{
        System.Data.OleDb.OleDbConnection dbConnect = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + System.IO.Path.GetDirectoryName(strFileName) + ";Extended Properties = \"Text;HDR=YES;FMT=TabDelimited\"");
        dbConnect.Open();
        string strQuery = "SELECT * FROM [" + System.IO.Path.GetFileName(strFileName) + "]";
        System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(strQuery, dbConnect);
        System.Data.DataSet dSet = new System.Data.DataSet("CSV File");
        adapter.Fill(dSet);
        dbConnect.Close();
        return dSet.dbTables[0];
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接