如何从"值"获得的动态类型变量中获取值。 Microsoft.Office.Interop.Excel.Range对象的属性

时间:2016-06-07 17:01:49

标签: c# .net excel dynamic range

当我试图从动态类型变量中获取值时出现问题,这是"值"的结果。 Microsoft.Office.Interop.Excel.Range对象的属性。这是我的情景:

我正在使用c#,我在excel文档中有这个值:

11010001    123 0
11010002    0   23
11010003    0   120

当我使用control + c命令执行复制时,我需要捕获这些值并使用它们创建一些内容,这就是de Range对象返回所选值的方式:

//C# Code
//Get the active and open Excel
var excel = Marshal.GetActiveObject("Excel.Application") as Microsoft.Office.Interop.Excel.Application;

//Get the selected rows range
Range range = excel.Selection as Range;

//Get the values of selected rows
dynamic cellValue = range.Value;

在cellValue变量中,我有以下格式的值: Code fragment

所以,我的问题是我不知道如何通过分离获取这些值并将它们插入我的数据库中。

你能帮我提一下如何从动态类型变量中获取这些值的建议或代码示例吗?

问候。

1 个答案:

答案 0 :(得分:0)

经过这么多尝试后,当我将动态变量放入监视窗口时,我找到了解决方案,并且正确的方法是访问所包含的值,这是以下方式:

        dynamic cellValue = range.Value;             
        int longitud = ((object[,])cellValue).Length;
        for (int i = 1; i <= longitud/3; i++)
        {
            for (int j = 1; j <= 3; j++)
            {
              object texto = ((object[,])cellValue)[i, j];
            }
        }

但请注意,您必须导入Microsoft.CSharp.dll并使用Microsoft.CSharp.RuntimeBinder;使工作变得更好。

问候。