【问题标题】:How to get a value from a dynamic type variable obtained from the "value" property of Microsoft.Office.Interop.Excel.Range object如何从从 Microsoft.Office.Interop.Excel.Range 对象的“值”属性获取的动态类型变量中获取值
【发布时间】:2016-10-07 16:48:38
【问题描述】:

当我尝试从动态类型变量中获取值时遇到问题,这是 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

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

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

问候。

【问题讨论】:

    标签: c# .net excel dynamic range


    【解决方案1】:

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

            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;使之成为可能。

    问候。

    【讨论】:

      猜你喜欢
      • 2013-01-04
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-13
      • 2021-11-12
      • 2023-02-04
      • 2016-09-27
      相关资源
      最近更新 更多