2011-05-19 50 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函數。

最後處理您的數據表。