其他分享
首页 > 其他分享> > 互操作Excel-范围文本到多维数组

互操作Excel-范围文本到多维数组

作者:互联网

我正在阅读具有以下代码的Excel工作表:

  Excel.Range uRange = xlWorkSheet.UsedRange;  
  dynamic data = uRange.Value2;

如您所见,我将使用的范围单元格值复制到动态2D数组中.一栏
所选范围是自定义格式,通过上述技术,我得到的只是一堆数字
访问此自定义格式的单元格(data [x,y])时,而不是使用漂亮的格式值.

如果我仅使用以下代码直接访问某些单元格:

 (Excel.Range)xlWorkSheet.Cells[x, y].Text

…我可以看到所需的格式化值.通过分别访问每个单元格,我浪费了很多时间,因为在循环内逐个单元格访问较慢.

是否有可能从选定范围获得所有Text值.像这样:

 Excel.Range uRange =xlWorkSheet.UsedRange; 
 dynamic data = uRange.Text;

当我使用上述代码时,我得到的是空变量.

解决方法:

请注意,如果您在Silverlight应用程序中使用COM interop访问excel文件,则该方法将不起作用.

这是解决方案,基本上,您需要遍历各列,并为每一列获取一维数组. (这种方法非常快)

 foreach (var column in fullRange.Columns)
 {
   // vals will be a one-dimensional array 
   // of all values in that column!
   var vals = column.Value;

   foreach (var val in vals)
   {
       if (val == null) continue;
       string cellValue = val.ToString();
       //Debug.WriteLine(" Value read: " + cellValue);
       //do something with the value...

   }
 }

标签:excel-interop,c,net
来源: https://codeday.me/bug/20191208/2089772.html