我正在编写一个控制台应用程序,它使用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)
{
}
}
}
}
}
答案 0 :(得分:1)
如果您只有(如评论中所述)3种不同类型的csv。 只需相应地创建3个模型,然后使用CSVHelper来读取数据。
答案 1 :(得分:0)
读取文件名或列结构中标识结构类型的内容...以便您知道如何解释正在读取的内容。 3种不同的CSV文件,3种不同的解释方式。一旦识别出&#34;格式类型:,就写下每个并传递给相应的方法。不幸的是,没有捷径,取决于你想要的动态,以及所需的工作水平。