use*_*197 5 c# excel range dataset
我有一个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并将返回的范围返回到数据集中?
我不知道内置函数,但自己写应该不难。伪代码:
DataTable MakeTableFromRange(Range range)
{
   table = new DataTable
   for every column in range
   {
      add new column to table
   }
   for every row in range
   {
      add new datarow to table
      for every column in range
      {
         table.cells[column, row].value = range[column, row].value
      }
   }
   return table
}