我有一個Excel電子表格,它將坐在網絡共享驅動器上。它需要被我的Winforms C#3.0應用程序訪問(許多用戶可能正在使用該應用程序並同時觸擊該電子表格)。一張工作表上有很多數據。這些數據被分解成我已經命名爲範圍的區域。我需要能夠單獨訪問這些範圍,將每個範圍作爲數據集返回,然後將其綁定到網格。將Excel範圍轉換爲ADO.NET DataSet或DataTable等
我發現使用OLE的例子,並得到這些工作。但是,我已經看到了有關使用此方法的一些警告,並且在工作中我們一直使用Microsoft.Office.Interop.Excel作爲標準。除非必須,否則我不想偏離這一點。就我所知,我們的用戶將使用Office 2003。
我能得到我需要用下面的代碼範圍:
MyDataRange = (Microsoft.Office.Interop.Excel.Range)
MyWorkSheet.get_Range("MyExcelRange", Type.Missing);
的OLE方式是不錯的,因爲它會採取我的第一行,並把這些成列。我的範圍(總共12個)在大多數情況下在列數上彼此不同。不知道這個信息是否會影響任何建議。
有什麼辦法可以使用Interop並將返回的範圍返回到數據集?
我很欣賞所有的迴應。由於我找不到任何內置的東西,我繼續前進,只是在範圍內滾動並創建了一個數據表。這裏列出的所有建議都會起作用,這只是我不想使用OLEDB,現在我無法引入第三方庫。感謝您的快速回復。非常感激。 – user295197 2010-03-18 14:41:43
這是僞代碼... – 2013-02-15 03:26:11