【发布时间】:2011-01-28 08:17:41
【问题描述】:
我有一个 Excel 电子表格,将放在网络共享驱动器上。我的 Winforms C# 3.0 应用程序需要访问它(许多用户可能正在使用该应用程序并同时点击此电子表格)。一张工作表上有很多数据。这些数据被分解成我命名为范围的区域。我需要能够单独访问这些范围,将每个范围作为数据集返回,然后将其绑定到网格。
我找到了使用 OLE 的示例,并且已经让这些示例发挥作用。但是,我看到了一些关于使用这种方法的警告,而且在工作中我们一直使用 Microsoft.Office.Interop.Excel 作为标准。我真的不想偏离这个,除非我必须这样做。据我所知,我们的用户将使用 Office 2003。
我可以通过以下代码得到我需要的范围:
MyDataRange = (Microsoft.Office.Interop.Excel.Range)
MyWorkSheet.get_Range("MyExcelRange", Type.Missing);
OLE 方式很好,因为它会占用我的第一行并将它们变成列。我的范围(总共 12 个)在大多数情况下在列数上彼此不同。不知道此信息是否会影响任何建议。
有什么方法可以使用 Interop 并将返回的范围返回到数据集中?
【问题讨论】: