如何在C#中读取具有不同数据的多个CSV文件?
我正在编写一个控制台应用程序,它使用SmartXLS库从单个文件夹读取多个CSV文件。目前,我的应用程序能够从文件夹中读取具有类似数据的CSV文件,但我对应用程序的要求是逐个读取具有类似/不同数据的所有文件。请帮我做这个 代码:如何在C#中读取具有不同数据的多个CSV文件?,c#,csv,console-application,C#,Csv,Console Application,我正在编写一个控制台应用程序,它使用SmartXLS库从单个文件夹读取多个CSV文件。目前,我的应用程序能够从文件夹中读取具有类似数据的CSV文件,但我对应用程序的要求是逐个读取具有类似/不同数据的所有文件。请帮我做这个 代码: public void GetData() { 整数计数=0; 令牌=新列表(); var files=Directory.EnumerateFiles(@“C:\projects”,“*.csv”); foreach(文件中的字符串文件) { 使用(FileStrea
public void GetData()
{
整数计数=0;
令牌=新列表();
var files=Directory.EnumerateFiles(@“C:\projects”,“*.csv”);
foreach(文件中的字符串文件)
{
使用(FileStream fs=newfilestream(file,FileMode.Open,FileAccess.Read))
{
SmartXLS.WorkBook WB=新工作簿();
WB.readCSV(文件);
DataTable dt=WB.ExportDataTable();
字符串dtSTR;
数据行dr;
对于(int i=1;i
如果您只有(如评论中所述)3种不同类型的csv。
只需相应地创建3个模型,并用于读取数据。读取文件名或列结构中标识结构类型的内容。。。这样你就知道如何解释正在阅读的内容。3个不同的CSV文件,3种不同的解释方式。写入每个方法,并在“格式类型:已识别。不幸的是,没有快捷方式,这取决于您想要使其动态化的程度以及所需的工作级别。问题是什么?如何从单个文件夹中读取具有不同列名的CSV文件@Seabizkit不同,您的意思是运行时未知?如果您想将不同的列解析为
DateTime
,float
,或者只使用asstring
,您需要对这些文件中的列有一些了解。我在一个文件夹中有3个不同的csv文件,其中包含不同的列。我想知道我怎样才能一个接一个地阅读这三个文件?我想将它们解析为字符串@Grooh如何迭代和读取每个文件@格罗
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)
{
}
}
}
}
}