我有一个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