C# 从文件中提取特定数据

C# 从文件中提取特定数据,c#,excel,csv,C#,Excel,Csv,我有一个特定的csv文件,其中包含以下数据: uid Business Area employeeNumber First Name Last Name JobcodeID EXBK145 Home Loans 9134805 Mason Kapari 50635804 ABES623 Absa Consultants & Actuaries 9136459 Elroy Shilling 50644965 EXTK194 Forex Operatio

我有一个特定的csv文件,其中包含以下数据:

uid Business Area employeeNumber First Name Last Name JobcodeID EXBK145 Home Loans 9134805 Mason Kapari 50635804 ABES623 Absa Consultants & Actuaries 9136459 Elroy Shilling 50644965 EXTK194 Forex Operations 9140600 Tania Kanniappen 60390922 ABNM539 Absa Business Bank 9025659 Zodwa Mgaga 60225348 ABAJ253 Absa Ins&Fin Advisers(Pty)Ltd 9040745 André Joubert 50055313 ABSP391 Channel Sales & Service 9044366 Steph Potgieter 4863 ABDL205 Absa Card 9083713 Lesego Lekgoro 50050702 EXNM450 Channel Sales & Service 9121175 Thando Shangase 60470761 EXSK201 Allpay 9130647 Sibusiso Kambule 60615651 ABEK171 AIFA-PB Advisers 9011833 Esmé Pretorius 60660026 uid业务区域员工编号姓名姓氏职务代码ID EXBK145住房贷款9134805梅森卡帕里50635804 ABES623 Absa顾问和精算师9136459埃尔罗伊先令50644965 EXTK194外汇业务9140600塔尼亚卡尼亚彭60390922 ABNM539 Absa商业银行9025659佐德瓦Mgaga 60225348 ABAJ253阿布萨保险和财务顾问(私人)有限公司9040745安德烈·朱伯特50055313 ABSP391渠道销售与服务9044366 Steph Potgieter 4863 ABDL205 Absa卡9083713 Lesego Lekgoro 50050702 EXNM450渠道销售和服务9121175 Thando Shangase 60470761 EXSK201 Allpay 9130647 Sibusiso Kambule 60615651 ABEK171 AIFA-PB顾问9011833 EsméPretorius 60660026 我需要有以下输出:

Action uid EmploymentStatus modify EXBK145 0 modify ABES623 0 modify EXTK194 0 modify ABNM539 0 modify ABAJ253 0 modify ABSP391 0 modify ABDL205 0 modify EXNM450 0 modify EXSK201 0 modify ABEK171 0 操作uid EmploymentStatus 修改EXBK145 0 修改ABES623 0 修改extk1940 修改ABNM539 0 修改ABAJ253 0 修改ABSP391 0 修改ABDL205 0 修改EXNM450 0 修改EXSK201 0 修改ABEK171 0 从输入文件中,我只需要UID。我试过“快速csv阅读器”,但我的系统不能正常工作。。。。。。。。。。。我正在使用visual C#2010。我也尝试过正则表达式,但没有达到预期效果

任何帮助和例子都将不胜感激,我可以从中学习

提前谢谢
Kurt

您拥有的是一个以制表符分隔的文件。有许多免费的开源库可以读取它们(例如,)

另一方面,如果您只需要第一列,则可以逐行读取文件,并使用:

使用(StreamReader sr=newstreamreader(“TabDelimited.txt”))
{
弦线;
//读取并显示文件中的行,直到
//已到达该文件。
而((line=sr.ReadLine())!=null)
{
int idx=行索引(“”);
if(idx<0)
继续;
//获取uid
字符串uid=line.Substring(0,idx-1);
}
}

您拥有的是一个以制表符分隔的文件。有许多免费的开源库可以读取它们(例如,)

另一方面,如果您只需要第一列,则可以逐行读取文件,并使用:

使用(StreamReader sr=newstreamreader(“TabDelimited.txt”))
{
弦线;
//读取并显示文件中的行,直到
//已到达该文件。
而((line=sr.ReadLine())!=null)
{
int idx=行索引(“”);
if(idx<0)
继续;
//获取uid
字符串uid=line.Substring(0,idx-1);
}
}

您可以使用字符串数组中的file.ReadAllLines(path)读取整个文件,然后使用string.split(“”)解析每一行

第1行将包含第一行的所有数据

谢谢
Saurabh

您可以使用字符串数组中的file.ReadAllLines(path)读取整个文件,然后使用string.split(“”)解析每一行

第1行将包含第一行的所有数据

谢谢
Saurabh

LumentWorks中有一个名为CsvREader的好工具。这是免费的。而且它有很好的特性

以下是我使用过的一个简单代码:

CsvReader csv = new CsvReader(textreader, hasHeaders, delimiter); int fieldCount = csv.FieldCount; string[] headers = null; if (m_bHasCSVHeaders) headers = csv.GetFieldHeaders(); while (csv.ReadNextRecord()) {...} CsvReader csv=新的CsvReader(文本读取器、哈希读取器、分隔符); int fieldCount=csv.fieldCount; string[]headers=null; if(m_bHasCSVHeaders) headers=csv.GetFieldHeaders(); 而(csv.ReadNextRecord()) {...}
希望对您有所帮助

LumentWorks有一个名为CsvREader的好工具。这是免费的。而且它有很好的特性

以下是我使用过的一个简单代码:

CsvReader csv = new CsvReader(textreader, hasHeaders, delimiter); int fieldCount = csv.FieldCount; string[] headers = null; if (m_bHasCSVHeaders) headers = csv.GetFieldHeaders(); while (csv.ReadNextRecord()) {...} CsvReader csv=新的CsvReader(文本读取器、哈希读取器、分隔符); int fieldCount=csv.fieldCount; string[]headers=null; if(m_bHasCSVHeaders) headers=csv.GetFieldHeaders(); 而(csv.ReadNextRecord()) {...} 希望能有帮助

CsvReader csv = new CsvReader(textreader, hasHeaders, delimiter); int fieldCount = csv.FieldCount; string[] headers = null; if (m_bHasCSVHeaders) headers = csv.GetFieldHeaders(); while (csv.ReadNextRecord()) {...}