互操作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