问题标签 [excel-dna]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
128 浏览

user-defined-functions - Excel UDF 返回一个巨大的数字

Excel AddIn 使用 Excel DNA、VS2008、C#、MyUDF(param1, parm2) 当我输入“=MyUDF”并按 Enter 时,Excel 显示一个巨大的数字,如 970063926 并且我的 MyUDF 的 c# 代码没有运行

有谁知道这个巨大的数字是多少?

谢谢

0 投票
0 回答
336 浏览

c# - Excel 对象模型中触发了哪些事件

VS2008, .NET35, Excel AddIn, Excel-DNA, NetOffice 为了禁用/启用功能区按钮,我捕获了 3 个事件(例如,如果用户选择一个单元格,该单元格的公式是 MyUDF1,那么按钮/菜单项不相关到 MyUDF1 将显示为灰色。)

但是,当用户复制整个工作表并粘贴到另一个工作表或当用户选择列并进行自动调整时,这对性能造成很大影响,Excel 似乎会挂起 2-3 分钟有人知道解决方案吗?多谢!

您好,如果有一些工具可以用来在客户端的 PC 上运行,以了解复制/粘贴发生时 Excel 中发生了什么?我尝试了进程监视器,但它似乎不够详细,我无法从那里获得任何有用的信息。

0 投票
1 回答
1969 浏览

c# - 无法在 C# 中的 excel 加载项中按名称轻松访问 excel 范围

我是用 C# 编写加载项的新手(对于 C# 也是如此)。我已经看到 ExcelDNA 非常适合简单的函数,但我被一个简单的任务困住了:操纵范围(特别是通过它们的名字来解决)。您会看到我尝试将 Interop 用于此任务,这对我来说看起来很简单。在这段非常简单的代码中我做错了什么?我已经去了 ExcelDNA 谷歌小组,但我只发现了非常尴尬的答案

首先十分感谢

使用 ExcelDna.Integration;

它抛出这个错误

mscorlib.dll 中出现“System.Reflection.TargetInvocationException”类型的第一次机会异常 mscorlib.dll 中出现“System.Runtime.InteropServices.COMException”类型的第一次机会异常

0 投票
2 回答
2949 浏览

c# - 从使用 Excel-DNA 构建的 Excel .XLL 文件中解压缩内容

不知道大家是否知道excel-dna项目,这是一个帮助将.net汇编和语言集成到excel插件中的项目。

我的问题是我想从 xll 文件中解压缩 dll(excel-dna 能够在 xll 中打包资源)。

我下载了 excel-dna 源代码,并且已经根据源代码编写了这个基础:

但它不起作用。任何人都有从 xll 解压 dll 的想法?

提前致谢,

0 投票
4 回答
28660 浏览

c# - 在 C# 中获取当前的工作簿对象

我一直在用 C# 编写一个应用程序,它在 Excel 电子表格中创建自定义文档属性,我有一个函数用于接收工作簿对象......

但是,实际上获取当前的 Workbook 对象被证明是相当烦人的,我正在使用 ExcelDNA 添加功能,但是,我似乎无法将我的函数传递给有效的 Workbook COM 对象。

0 投票
1 回答
1706 浏览

excel - Excel DNA - 我可以避免一起做 regasm 吗?

我正在尝试评估Excel DNA以在我的一个 excel 加载项中使用它。我使用 C# 函数 (.NET 4.0) 并希望从 Excel 调用这些函数。我感兴趣的原因是,我的插件的用户是非管理员,因此如果我能找到一个解决方案,不在我的 .NET dll 上进行 regasm,让我的插件正常工作,这将是一个突破。

我知道,如果它像一个工作表函数(具有简单的返回类型和参数),例如:private string Add (int a, double b) 我可以使用 excel dna 轻松包装公开它们。另外,我知道,我也可以使用VBA中的Application.Run调用这些简单的函数。

但是,如果我在 API 中有一个复杂类型并且想从 VBA 中使用它,那么我是否需要重新调整该程序集和类型?像这样的例子:

或者 Excel DNA 中是否有任何方法,我也可以在 VBA 中使用此类函数而无需任何 regasm 或 regsvr32 ?

谢谢玛尼

0 投票
1 回答
3236 浏览

c# - 如何在 C# 中检查 Excel 单元格格式以查看单元格值是否为日期

大家早上好!

我一直在开发一个项目,用户可以在其中发布一组日期的一组值。

例如,用户将在 Excel 中选择一个包含日期值的范围,以及一个包含与这些日期相对应的要发布的值的大小相等的范围。

我需要做的(C#)是检查两个范围的单元格格式以查看哪个是“实际上”日期,我一直在使用 ExcelDNA,并且由于所有日期都以双精度形式返回,因此我可以在技术上解析我的“值”日期,并导致各种问题。

如果我可以获得单元格格式,我可以查看该单元格是否实际上是一个日期!

提前致谢。

0 投票
2 回答
554 浏览

.net - 有没有办法控制excel加载插件?(使用LegacyV2RuntimeActivationPolicy 问题)

我陷入了一个真正混乱的境地。

场景: 我有一个调用 .NET 4.0 库(通过 ExcelDna)的 Excel 自动化 VBA 加载项。这个 4.0 库调用了 2.0 混合模式库中的一些方法。因此必须将 'BindAsLegacyV2Runtime' 设置为 4.0 CLR。我在 4.0 库中设置了这个,当 excel 实例化这个库时,CLR 加载这个属性集并且一切正常。(见这个链接)。我无法修改 excel.exe.config,因为它在生产机器中被拒绝。

我从批处理文件启动 excel 进程并将我的插件加载为:

问题: 发现这在少数用户机器上不起作用,并调查了这个问题,发现 excel 在加载作为参数传入的插件之前首先在机器中加载预安装的插件。因此,在加载 4.0 加载项之前,excel 正在加载 2.0 CLR,因为有一些其他加载项。因此,该属性无法设置,逻辑进行了折腾。

我无法修改 excel.exe.config(将属性添加到配置)或注册我的插件,因为这两者都需要用户计算机上的管理员权限,并且在我的环境中是不可能的。

因此,有没有办法控制 excel 加载插件或任何方式来使这项工作?

0 投票
3 回答
2097 浏览

c# - 将多维数组转换为具有可为空值的单维数组

我主要使用 ExcelDNA/C#/Excel。我实际上要做的是使用以下代码将多维数组(即单元格范围)转换为单维数组:

这是一种享受,并且在我的项目中多次使用,但是我想添加更多功能。

当我尝试使用包含空单元格的范围运行此函数时,它会出现可怕的错误,目前我只是尝试/捕获一条错误消息,通知用户在任何空单元格中输入 N/A。

我真正想做的可能是在这个函数中,将任何“null”或任何 Excel 存储的空单元格转换为文本字符串“N/A”。

0 投票
1 回答
2226 浏览

c# - 是否可以从链接标签打开 Windows 资源管理器

大家早上好,

我有一个项目将作为 Excel 插件分发,它是用 C# 编写并使用 ExcelDNA。

我想做的是在我的加载项主窗体中添加一个链接标签,单击时,我希望它在特定索引处打开 Windows 资源管理器,例如 G:驱动器。

这可能吗?我看过一些例子,但无法解决它们,

提前致谢!