问题标签 [xll]

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 投票
0 回答
128 浏览

excel - 加载多个项目 DLL

有人可以帮我解决我面临的这个 XLL 负载问题吗?

我有一个 DLL 解决方案,在这个解决方案下我有 prj1 和 prj2。

prj1 有 prj1cppfile,它有几个我写的用户定义函数。

prj2 有 prj2cppfile,它有一些我写的更多用户定义的函数。

现在,我选择解决方案 make prj1 作为我的启动项目。

然后F5我开始在调试模式下使用我的代码。

我观察到的是(在打开的 Excel 电子表格中)我只有来自 prj1cppfiles 的函数。

当我选择 prj2 作为我的启动项目时,我看到了我在 prj2cppfiles 中拥有的功能。

现在我想要同时加载 prj1 和 prj2,以便我看到来自 prj1cppfile 和 prj2cppfile 的函数,它们位于两个不同的项目中。

有人可以帮我解决这个问题。我想以这样一种方式设置一个解决方案,无论我选择什么启动项目(prj1 或 prj2),我都应该能够在 excel 中公开所有功能(来自 prj1cppfile 和 prj2cppfile)。

我正在使用 Visual Studio 2008,我正在使用来自 Codeplex 的 Keith Lewis 代码的 XLL 代码。我是编写 XLL 的新手,所以在我尝试学习的过程中,请给我一个详细的答案。


我观察到的是在解决方案 prj1.dll 的调试文件夹中,并且 prj2.dll 存在。我选择 prj1 作为我的启动项目,然后按 f5 键打开 excel。然后我去调试文件夹并将prj2.dll拖放到打开的excel中。当我这样做时,我可以访问 prj1.dll 和 prj2.dll 中的所有功能。是否不可能拥有一个包含不同 dll 所拥有的所有功能的主 dll ?什么是设置这个主 dll 的方法。

最好的

0 投票
2 回答
4854 浏览

c - 将 ASCII 字符转换为 x11 键码

我有一个小程序,它以 ascii 字符的形式输入。我需要能够将这些转换为用于 x11 功能的键码。是否有执行此操作的 xlib 函数或其他库?还是大型开关盒效果最好?

0 投票
1 回答
846 浏览

c# - 我可以在 C# 项目中调用 Excel 插件的函数吗?

Excel 插件是用 C++ 编写的,但我没有源代码。

我可以在 Excel 电子表格上使用它的功能;我可以在 C# 中做同样的事情吗?

解决了:

谢谢大家,它通过以下代码工作:

0 投票
3 回答
3060 浏览

c++ - C++ 64 位 Excel 加载项 (XLL) 未在 64 位 Excel 中正确加载

我有一段 C++ 代码,它创建了一个 XLL(Excel 插件)。它可以通过Excel成功加载,并且可以完美运行。

然后,我切换到 64 位 Excel,代码停止工作。因此,我使用 x64 平台设置重新编译了 Visual Studio 中的代码。编译没有错误。

现在,当我尝试在 64 位 Excel 中加载它时,Excel 无法识别文件扩展名:

在此处输入图像描述

它抱怨显示“'MyAddin.xll' 的文件格式和扩展名不匹配。”,并为我提供以下选项以继续:yes、、nocancel

如果我忽略该消息并按yes,则加载项崩溃,并且我收到错误消息:

该程序不能在 DOS 模式下运行。

由于加载项编译正确,我不确定如何解决此错误。我的问题是:任何人都可以给我任何关于如何克服这个问题的指示吗?

我的要求是:

  1. 64 位 Excel 必须将我的 XLL 识别为有效的加载项(第一条错误消息必须消失)

  2. 第二个错误是什么意思?

0 投票
4 回答
6452 浏览

excel - Excel 插件开发

我需要为excel开发一个插件。它的行为应该类似于 Eclipse 插件。它应该可以作为上下文相关菜单使用,应该可以访问当前打开的电子表格内容、图表内容等。

我看到了以下用于开发 Excel 加载项的链接:http: //msdn.microsoft.com/en-us/library/office/aa730920 (v=office.12).aspx#office2007excelXLL_DevelopingXLLs (使用 C & C++ 和XLL SDK)。

这是为 Excel 开发插件的唯一选择吗?

0 投票
0 回答
598 浏览

c# - 将 XLL 从 xlw 移植到 xlw.Net

我在 VS 2008 中开发了 2 个项目。

  1. C++ dll(核心库)
  2. C++ Excel 插件 Xll(使用 XLW 4_0_0f0)

我在 dll 和 xll 之间传输 Xlw::XlfOper 变量。很长一段时间以来,它一直运行良好。

现在我正在尝试使用 xlw.Net 在 C# 中重新实现插件项目(如下面的 3 个项目),

  1. 本机 C++ dll(核心库)
  2. 托管 C++ 包装器 dll (C++/CLI)
  3. C# Excel 插件 Xll(使用 XLW.Net)

因为 xlw.Net 不支持 XlfOper,所以我可以在我的 C++ dll 中使用 Xlw::CellMatrix。我正在托管 dll 中的 xlw::CellMatrix 和 xlwDotNet::CellMatrix 之间进行转换。然后我使用 XLW.Net 创建一个模板插件项目并引用包装器 dll。但它会抛出 CS:0433 : Type 'xlwDotNet::CellMatrix' 已经存在于两个 dll 中(即包装器和 xlw.Net)。

也许我可以通过使用编译器命令引用别名来摆脱这个错误,但我的问题不仅是关于这个错误,而且是我将加载项从 C++ 移植到 C# 的方式。具体来说,在我的情况下,还有其他更好的方法可以在 C# 中创建 XLL 吗?我是.Net 的新手。如果我的原生 dll 不使用 CellMatrix,或者我的核心库是用 C# 编写的,那将非常简单。有没有人经历过这种情况?我做了很多试错并在互联网上搜索了这个问题,但没有成功。

本机库很大,由于性能问题,我不想将其转换为 C#。

谢谢你。

0 投票
2 回答
6836 浏览

excel - 在 Excel 中加载 XLL:Tools->AddIn 和 File->Open 之间有什么区别?

我有一个 XLL,想在 Excel 中加载它。

使用 Tools->AddIn 或 File->Open 加载之间有什么区别吗?

  • 如果我使用 File->Open 则无法卸载它;
  • 如果我重新启动 Excel,它将不会自动加载。

谢谢!

0 投票
2 回答
406 浏览

c++ - xlcalert 在 XLL SDK 示例中不起作用

我是 XLL 开发的新手。我下载了 2010 XLL SDK 并能够在 VisualC++ 2012 中构建示例。当我在 Excel2010 中加载 xll 时,我看到了带有“thank you ...”消息的弹出窗口,并且我看到了从示例中导出的所有函数Excel,所以似乎一切都已成功加载。

但是,xlcalert 在大多数功能中都不起作用。我只看到来自和xlcalert的弹出对话框。我什至修改了函数来做:xlAutoAddxlAutoRemoveEvaluateExample()

当我运行该函数时,我没有看到弹出窗口。我错过了什么?我似乎找不到太多对 xlcalert 的引用。

提前致谢

0 投票
3 回答
1388 浏览

c++ - 如何从 XLL UDF 返回数组

我正在尝试使用 C API 为 Excel 编写一个数组构造函数作为工作表函数。

目标:=array_cons(1, 2, 3) => {1, 2, 3}

但是,我没有正确初始化 XLOPER12。在 Excel 中,我的函数当前返回#NUM. 我正在获取参数列表并vargs通过宏将其打包到一个数组中,然后尝试返回提供的数组部分。

0 投票
2 回答
1107 浏览

c++ - 如何编写一个 Excel C 加载项函数,将字符串返回到 Excel 而不发生内存泄漏?

我正在使用 C++ 编写 Excel XLL 插件,我希望我的函数使用预定义的 XLOPER12 将字符串返回到 Excel。

据我了解,Excel 要求函数返回一个指向内存的指针,然后它会进行浅拷贝,然后在不清除函数中分配的内存的情况下消失。所以如果我写这样的东西:

但显然这会导致内存泄漏。有人建议我可以将 res 声明为静态变量,但我真的不知道如何初始化它。

欢迎所有建议。

最好的