从 Excel 文档中的代码隐藏访问 ActiveX 或 Form 对象(文本框)

2023-11-22

Excel 文件中有几个作为 ActiveX 对象的文本框,我想从代码隐藏中访问它们。

我正在将 ClosedXML 用于其他领域,但我愿意接受其他建议。


要从 C# 访问 OLE 对象,请添加对 Microsoft Forms 2.0 对象库的引用。您可以迭代所需的复选框和文本框的控件。享受 !

using Excel = Microsoft.Office.Interop.Excel;
using VBE = Microsoft.Vbe.Interop.Forms;

private static void ExcelOperation(string xlFileName)
        {
            var xlApp = new Excel.Application();
            var xlWorkbook = xlApp.Workbooks.Open(xlFileName);
            var xlSheet = xlWorkbook.Worksheets["your_sheet_Name"] as Excel.Worksheet;

            try
            {
                Excel.OLEObjects oleObjects = xlSheet.OLEObjects() as Excel.OLEObjects;
                foreach (Excel.OLEObject item in oleObjects)
                {                   
                    if (item.progID == "Forms.TextBox.1")
                    {
                        VBE.TextBox xlTB = item.Object as VBE.TextBox;
                        Console.WriteLine("Name: " + item.Name);
                        Console.WriteLine("Text: " + xlTB.Text);
                        Console.WriteLine("Value: " + xlTB.get_Value());
                        Marshal.ReleaseComObject(xlTB); xlTB = null;
                    }
                    else if (item.progID == "Forms.CheckBox.1")
                    {
                        VBE.CheckBox xlCB = item.Object as VBE.CheckBox;
                        Console.WriteLine("checkbox: " + item.Name);
                        Console.WriteLine("Value: " + xlCB.get_Value());
                        Marshal.ReleaseComObject(xlCB); xlCB = null;
                    }                    

                }

                Marshal.ReleaseComObject(oleObjects); oleObjects = null;
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Marshal.ReleaseComObject(xlSheet); xlSheet = null;
            xlWorkbook.Close();
            Marshal.ReleaseComObject(xlWorkbook); xlWorkbook = null;
            Marshal.ReleaseComObject(xlApp); xlApp = null;
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Excel 文档中的代码隐藏访问 ActiveX 或 Form 对象(文本框) 的相关文章

  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 在VBA中初始化全局变量

    在 Excel 2003 中 如何声明全局变量并仅在打开工作簿时初始化它们一次 我有一些由几个宏使用的参数 基本上是输入文件的路径 目前 我的代码如下所示 global path1 path2 as string sub initPaths
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 如何捕获 JNI/Java 异常?

    我的应用程序中有一个 JNI 层 在某些情况下 Java 会引发异常 如何获取JNI层的Java异常 我的代码如下 if pConnDA gt penv gt ExceptionCheck pConnDA gt penv pConnDA g
  • C++ 任意长度整数

    在C 中 是否可以定义任意长度的整数 所以不必使用uint64 t对于 33 到 64 位之间的任何内容 我可以定义自己的 34 位 36 位等整数 正如您提到的 编译器有自己的类型 long 大多数平台上为 32 位 和 long lon
  • Clr 命名空间映射到默认 xaml 命名空间

    我有点厌倦了必须在每个 xaml 文件中声明 xmlns 以及必须为自定义控件使用前缀 是否可以将 clr 命名空间映射到 http schemas microsoft com winfx 2006 xaml presentation 我在
  • 如何为 Eclipse 和 M2E 的 maven pom.xml 文件中的类路径条目定义访问规则?

    为了避免 jfxrt jar 的非法访问警告 我手动更改了类路径文件以包含访问规则 想要类路径条目
  • 如何用flutter检查输入的电话号码是否有效?

    我正在尝试检查输入的电话号码是否有效 意思是 如果我输入了世界上不存在的错误数字 那么它会向我显示一个内容为 请输入有效数字 的祝酒词 Expanded child TextField keyboardType TextInputType
  • 读取带有分隔符的文件

    如何从文件中读取行并将该行的特定段分配给结构中的信息 如何在空白行处停止 然后再次继续 直到到达文件末尾 背景 我正在构建一个程序 它将获取输入文件 读入信息 并使用双重哈希将该信息放入哈希表的正确索引中 假设我有结构 struct Dat
  • Gradle 为每个资源文件夹构建

    是否可以配置 Gradle 来构建几个 Android apk 文件 其中每个文件仅使用一个资源类型文件夹 I mean 构建 hdpi apk 构建 mdpi apk 构建 xhdpi apk 我知道我可以在构建之前简单地删除某些文件夹
  • GUI 的自动化测试 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 这个问题与单元测试无关 它适用于桌面产品 这是关于 GUI 的测试以及测试是否在正确的时间在正确的文本框中输入了正确的内容 我曾经工作过的一家公司使用过WinRunner 不同的部门 所以
  • 在 C++ 中创建矩阵的正确方法

    我想为图创建一个邻接矩阵 因为我读过 使用以下形式的数组是不安全的matrix x y 因为它们不检查范围 所以我决定使用 stl 的向量模板类 我需要在矩阵中存储的只是布尔值 所以我的问题是 如果使用std vector
  • Jenkins REST buildWithParameters 覆盖默认参数值的 JSON 格式是什么

    我可以通过发送 POST 调用来使用其参数的默认值构建 Jenkins 作业http jenkins 8080 view Orion phase 2 job test remote api triggerring buildWithPara
  • Django Rest 框架不断返回嵌套关系错误

    盯着我的代码很长一段时间 我一直遇到同样的错误 有趣的是 我为模型的另一部分制作了一组类似的序列化器 并且它们工作得很好 这是我不断收到的错误 onderhoudapi conditiedeel json 处的 AttributeError
  • 在 VSTS 中运行 xunit.net 测试

    我运行时遇到问题xunit net测试在VSTS 运行构建计划时 Test assemblies步骤产生以下日志 2017 03 21T12 11 39 3302859Z section 开始 测试组件2017 03 21T12 11 39
  • 如何使用 lucene.net 实现多个过滤器的搜索

    我是 lucene net 的新手 我想在客户端数据库上实现搜索功能 我有以下场景 用户将根据当前选择的城市搜索客户 如果用户想要搜索其他城市的客户 则必须更换城市并重新进行搜索 为了细化搜索结果 我们需要提供针对区域 多个 Pincode
  • 滚动时检测 RecyclerView 何时到达最底部位置

    我有 RecyclerView 的代码 recyclerView RecyclerView rootview findViewById R id fabric recyclerView recyclerView setLayoutManag
  • Eclipse 项目中缺少 Maven 依赖项

    我们用maven建立了一个项目来解决依赖关系 它通常工作正常 但现在我尝试在新 PC 上编译并运行它 但我遇到了 Eclipse 中缺少依赖项的问题 有趣的是 如果我在控制台或 Eclipse 中运行 mvn package 它工作正常 甚
  • 具有 API 的开源论坛

    有人对基于 PHP Python 或 J2EE 的网络论坛有什么建议吗 该论坛具有良好的 API 可以通过编程方式创建用户和论坛主题 phpBB第一个想到的就是开源 因为它是免费的 实际上 几乎所有论坛平台都有某种 api 您可以通过编程方
  • APC 与 PHP 5.4 或 PHP 5.5 兼容吗?

    APC 似乎没有更新以与 php 5 4 版本一致 我希望他们像最初计划的那样将 APC 包含在 PHP 核心中 对于当前 APC 是否适用于 php 5 4 我似乎找不到任何明确的答案 我设法找到 php 5 4 的 Ubuntu 软件包
  • 如何将 Angular JS 集成到 Grails 2.3.4 中?

    我正在运行grails 2 3 4并考虑将 angularjs 集成到我的下一个应用程序中 我认为从服务器端来说最好的方法是使用grailsREST域和控制器类中的集成 然而我被困在这里了 如何让 grails 与 angularjs 进行
  • 为什么从 int 到 float 的转换会对值进行四舍五入?

    我正在阅读 CS APP 关于演员阵容 它说在演员阵容时从int到float 数字不能溢出 但可能会被四舍五入 这对我来说很奇怪 因为我不知道要舍入什么 所以我尝试了一下 我认为这只适用于非常大的整数 接近INT MAX INT MIN 但
  • 从 Excel 文档中的代码隐藏访问 ActiveX 或 Form 对象(文本框)

    Excel 文件中有几个作为 ActiveX 对象的文本框 我想从代码隐藏中访问它们 我正在将 ClosedXML 用于其他领域 但我愿意接受其他建议 要从 C 访问 OLE 对象 请添加对 Microsoft Forms 2 0 对象库的