如何在C#中阅读包含不同数据的多个CSV文件?

时间:2017-08-24 14:09:19

标签: c# csv console-application

我正在编写一个控制台应用程序,它使用SmartXLS库从单个文件夹中读取多个CSV文件。目前,我的应用程序能够从文件夹中读取具有类似数据的CSV文件,但我对该应用程序的要求是一个接一个地读取具有相似/不同数据的所有文件。请帮助我。

代码:

public void GetData()
        {
                int count = 0;

                 Tokens = new List<Token>();

                 var files = Directory.EnumerateFiles(@"C:\projects", "*.csv");

                foreach (string file in files)
                {
                    using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))
                    {
                        SmartXLS.WorkBook WB = new WorkBook();
                        WB.readCSV(file);

                        DataTable dt = WB.ExportDataTable();
                        string dtSTR;
                        DataRow dr;

                        for (int i = 1; i < dt.Rows.Count; i++)
                        {
                            dr = dt.Rows[i];

                            try
                            {
                                 dtSTR = dr[0].ToString();
                                if (string.IsNullOrEmpty(dtSTR)) continue;

                                var tkn = new Token();
                                tkn.Usagedate = ParseDateTime(dtSTR);
                                tkn.Product_name = dr[1].ToString();
                                tkn.Product_Version = dr[2].ToString();
                                tkn.Userid = dr[3].ToString();

                                Tokens.Add(tkn);
                                count++;

                                Console.WriteLine("Read : " + count);

                                Console.WriteLine("    Reading : " + tkn.Usagedate + "," + tkn.Product_name + "," + tkn.Product_Version + "," + tkn.Userid);

                            }

                            catch (Exception ex)
                            {

                            }

                        }
                    }

                }
            }

2 个答案:

答案 0 :(得分:1)

如果您只有(如评论中所述)3种不同类型的csv。 只需相应地创建3个模型,然后使用CSVHelper来读取数据。

答案 1 :(得分:0)

读取文件名或列结构中标识结构类型的内容...以便您知道如何解释正在读取的内容。 3种不同的CSV文件,3种不同的解释方式。一旦识别出&#34;格式类型:,就写下每个并传递给相应的方法。不幸的是,没有捷径,取决于你想要的动态,以及所需的工作水平。