2011-05-19 101 views
2

我是新来的asp.net.I有一个Excel工作表,它有许多重复的记录。我需要单独显示重复记录,说这些重复记录。我该怎么做。 是否有一个特定的查询只获取重复项。请帮助!使用c#提取excel中的重复记录.net

+0

显示您的代码,以及如何从Excel中提取数据。 – 2011-05-19 03:51:55

回答

0

好的,您没有提供很多有关您遇到问题的细节,因此我将为您提供有关您需要执行的操作的良好概述。然后你可以看看它,通过例子工作,看看你是否仍然困惑或缺少任何东西。

基本上,您将使用ADO.NET Jet OLEDB连接到Excel来查询数据。基本上你会做一个SELECT声明。现在我不认为你可以做一个SELECT DISTINCT,这是最简单的(请尝试以验证),但你至少可以做一个SELECT声明,让你的所有数据变成DataTable

将数据存入DataTable之后,您将应用一个视图,该视图允许您过滤掉重复的数据。基本代码类似于:

ds.Tables["YourTable"].DefaultView.ToTable(true,”uniqueID”); 

您可以根据自己的需要进行调整。这里有几个环节,以帮助您入门:

How to query Excel from ASP.NET

How to get a distinct row from a DataTable

1

首先我会想建议你使用“ExcelReaderFactory”读取Excel的记录。

VB.Net Code 

Dim excelReader As IExcelDataReader = Nothing 
Dim result As DataSet = Nothing 
Dim stream As FileStream = Nothing 
stream = File.Open(Server.MapPath("FilePath.xls"), FileMode.Open, FileAccess.Read) 
excelReader = ExcelReaderFactory.CreateBinaryReader(stream) 
result = excelReader.AsDataSet() 
stream.Close() 
stream.Dispose() 
excelReader.Close() 
result.Dispose() 

C#代码

IExcelDataReader excelReader = null; 
DataSet result = null; 
FileStream stream = null; 
stream = File.Open(Server.MapPath("FilePath.xls"), FileMode.Open, FileAccess.Read); 
excelReader = ExcelReaderFactory.CreateBinaryReader(stream); 
result = excelReader.AsDataSet(); 
stream.Close(); 
stream.Dispose(); 
excelReader.Close(); 
result.Dispose(); 

DataTable中获取数据后,可以使用select函数。

最后处理您的数据表。