我會使用與OleDbConnection的連接字符串如:
OleDbConnection connToFile = new OleDbConnection(String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties=""Excel 8.0;HDR=Yes"";", fileName));
與MS Access類似。然後將兩個表加載到內存並進行比較。
更新 好吧,對不起,我最初沒有得到您的問題。 答案更多取決於要求:
- XLS中的表是靜態的還是動態的?如果它是靜態的,那麼將XLS導入到MS Access中,並且如果您只需要獲取自己使用的值,請使用Query Editor來選擇和連接表,如下所示:selectA.Name,tableA中的count(b.ID)一個內部聯接tableB b on a.Name = b.Name group by a.Name
- 如果XLS中的表是動態的,但是您需要再次使用它以達到您自己的目的,請在MS Access中創建鏈接的數據源XLS文件並再次使用查詢編輯器執行選擇。
- 如果所有這些目的都是爲了讓網頁/應用程序連接到Microsoft Access和XLS並加入數據,並且會定期執行此操作,那麼您有兩種可能的解決方案:在內存中執行此操作,或者使用已保存的查詢執行此操作,然後使用OleDbConnection/OleDbDataAdapter將數據加載到應用程序中並將其顯示給用戶。內存方法可能不是最好的表現,所以編寫MS Access查詢,它將根據需要連接和分組數據,並使用OleDbConnection連接MS Access MDB文件並執行查詢。或者,如果您需要爲MS Access中的多個表執行此操作,請直接在代碼中編寫查詢文本,對每個連接執行,然後結果結果。
-1 OP在詢問如何進行比較。你只是重申他的問題。 – Pepe 2011-05-10 08:30:10
@ peter-r你不想給他更多的時間來闡述嗎? – ariel 2011-05-10 08:32:44
@ariel當然!如果他能詳細說明會很棒,但除非答案被編輯(已經超過6分鐘),否則我不能改變我的投票。 – Pepe 2011-05-10 08:37:21