问题标签 [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 投票
4 回答
2993 浏览

c++ - “addin.XLL is in a different format”问题,无法打开我自己创建的xll

我在VC++ 2010中写了一个非常简单的xll文件,我使用的Excel是Excel 2007。该库只包含一个函数:

和必要的 xlAutoOpen 功能。我编译了dll文件,改名为xll,双击打开Excel。一切都按我的预期工作。

但是,如果我尝试在另一台 PC 上打开此文件,Excel 只会不断告诉我:

您尝试打开的文件“.xll”的格式与文件扩展名指定的格式不同。在打开文件之前,请确认文件没有损坏并且来自受信任的来源。您现在要打开文件吗?

当我单击是时,垃圾会弹出。

我还尝试通过加载项管理器加载它。在这种情况下,我可以打开文件,但找不到我的函数 tsMkErr()。

我将不胜感激所有的建议......

顺便说一句,我真的不知道如何选择回复作为答案。如果你知道怎么做,也请告诉我:)

...我将在本周发布我的工具...现在我才意识到它只能在我的电脑上运行...请帮助...T_T

0 投票
2 回答
1483 浏览

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

我是编写 XLL 的新手,有人知道如何将 6x1 数组返回到 Excel 吗?

以下是我的功能(一些代码来自其他帖子):

[2013-02-23] 目前我从XLL RETURN ARRAY读取代码并查看我的代码,它可以编译但返回 0 ...

0 投票
1 回答
1537 浏览

excel - 尝试使用 UDF .xll 在 HPC 网格上并行化 Excel

我希望在 HPC 网格上并行化 Excel 计算,我正在使用 Excel 2007,所以我试图通过 XLL 中的 UDF 对其进行多线程处理,因为它是唯一的方法(至少在 2007 年)。

我想用 C# 编写 XLL 代码,正如这个线程建议的那样,我可以使用 exceldna

但是我不明白我应该如何多线程。在多线程处理时,我是否必须在 C# 中重新编写所有 VBA 函数?我可以只创建几个线程,每个线程调用一个 VBA 宏吗?

0 投票
2 回答
712 浏览

c++ - vs2010用Excel2007SDK创建XLL

我跟随安德鲁在vs2010 c++和Excel2007SDK下创建了XLL,它在Excel2010上运行良好。我在Excel2007上注册XLL后,显示注册成功,但无法调用任何函数。任何人都可以解决这个问题?

0 投票
0 回答
378 浏览

c++ - XLL RTD 编辑中的 Excel UDF 导致公式丢失正确的主题

我正在同一个 dll 中构建 XLL + RTD。RTD 不是直接从 Excel 调用,而是通过包装公式调用。类似于此处的示例Excel 中的自定义函数:第五部分,XLL-RTD

该功能似乎可以正常工作,但是当我手动编辑公式输入时,Excel 会将编辑后的公式与主题编号为 0 的公式混淆。已编辑项目的 ConnectData 和旧项目的 DisconnectData 都使用正确的主题 ID 调用。

这可能是什么解决方案?

0 投票
1 回答
3403 浏览

visual-studio-2010 - 从 Visual Studio 调试加载一个 excel 插件 xll

我创建了一个 excel 插件的调试版本,我们称之为 myaddin.xll。当我打开一个 excel 实例并将 myaddin.xll 添加到其中时,我得到了预期的结果。但是当我从 Visual Studio 环境中点击调试时,myaddin.xll 会尝试打开并给出“此程序不能处于 dos 模式”错误。

对于我开发的其他 excel 插件,我没有这个问题。此特定插件突然出现此问题。“dos 模式...”错误通常在缺少某些内容时发生。显然插件没有任何缺失的组件,因为它在 excel 中打开。但是当我尝试从 Visual Studio 中打开时,某些组件会丢失。我的问题是如何找出导致错误的原因并修复它。

当我点击调试时,excel 打开,然后弹出“你的文件 myaddin.dll 的格式与文件扩展名指定的格式不同......”当我点击确定时,我在电子表格中得到垃圾字符.

0 投票
1 回答
142 浏览

c++ - excel xll:函数内部调用函数的名称

我有使用 microsoft excel sdk 的 c++ xll 程序。是否有任何 excel4v() 或 excel12v() 函数可以告诉我调用它的 excel 用户定义函数的名称。

例如说我有两个 excel 用户定义函数 my_func1() 和 my_func2()。假设我有另一个函数 func(),它由 my_func1() 和 my_func2() 调用。在 func() 中,我想放置这个 excel4v/excel12v 函数来确定哪个用户定义的函数(my_func1() 或 my_func2())正在调用 func()。有没有办法做到这一点 ?

0 投票
2 回答
4118 浏览

visual-studio - 为 Windows 7/64 位创建 XLL Excel 插件(在 Windows XP/32 上交叉编译)

我不是熟练的 Windows 程序员,但多年来我为 32 位 Windows XP / Excel 创建并维护了一个 XLL 插件。我现在想创建一个 Windows 7/64 位版本,但遇到了麻烦 - 我什至无法让 Generic.xll 示例工作。

这是我所做的最简单的版本 - 抱歉,这很长而且很迂腐。

在我安装了 Visual Studio 2010 Professional 的 Windows XP/32 机器上:

  • 下载并安装了 Microsoft Excel 2013 SDK。

  • 开始菜单 - “打开 Visual Studio x64 Cross Tools 命令提示符 (2010)”

  • 设置类型=释放

  • SET PLATFORM=x64 // 我认为这是预设的

  • cd C:\2013 Office System 开发者资源\Excel2013XLLSDK\SAMPLES\FRAMEWRK

  • nmake //没有错误

  • cd C:\2013 Office System 开发人员资源\Excel2013XLLSDK\SAMPLES\GENERIC

  • nmake //没有错误

  • 将生成的 C:\2013 Office System Developer Resources\Excel2013XLLSDK\SAMPLES\GENERIC\​​x64\RELEASE\GENERIC.xll 复制到 Windows 7/64 计算机可访问的网络文件夹

在 Windows 7/64 计算机上:

  • 启动 Excel 2013

  • 文件 - 选项 - 加载项 - 管理 Excel 加载项 - 浏览,进入包含 Generic.xll 的网络文件夹,单击它。

  • 允许 Excel 将 Generic.xll 复制到标准文件夹。它静默加载,没有消息(包括没有消息说它加载了 Generic.xll)

  • Generic.xll 中没有任何功能出现。

  • 关闭并重新打开 Excel - 重新打开时,我收到一个消息框,提示“'GENERIC.xll' 的文件格式和扩展名不匹配。文件可能已损坏或不安全......”(如果我说“是”它像文本文件一样加载它,向我展示电子表格中 XLL 中的二进制代码。)

根据以前的 (Windows XP/32) XLL 经验,此消息几乎可以表示任何内容 - 包括缺少所需的 DLL。所以,

在 Windows 7/64 计算机上:

  • 安装 Microsoft Visual C++ 2010 x64 Redistributable - 10.0.30319。没有影响。

  • 安装 Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.51106。没有影响。

  • 运行“由 Steve P. Miller 开发的 Win64(x64) 版本 2.2.600 的 Dependency Walker”

  • 文件 - 打开 - Generic.xll

  • 它显示它找不到:
    -- XLCALL32.DLL // 典型的来自我在工作 XLL 上的 Windows XP 经验
    -- API-MS-WIN-CORE-COM-L1-1-0.DLL
    -- API-MS-WIN -CORE-WINRT-ERROR-L1-1-0.DLL
    -- API-MS-WIN-CORE-WINRT-L1-1-0.DLL
    -- API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1 -0.DLL
    -- API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
    -- API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
    -- DCOMP.DLL
    - - IESHIMS.DLL // 典型的来自我在工作 XLL 上的 Windows XP 经验

所以,现在我被难住了。我以为我遇到了 64 位问题,但我开始怀疑我是否遇到了 Windows 7 问题。

帮助?

谢谢,

蒂姆

0 投票
2 回答
589 浏览

c - Excel 无法识别我的 xll 文件

我按照本指南http://support.microsoft.com/kb/178474/en-us使用代码块和 mingw 创建了我的第一个 xll 文件

问题是dll文件,重命名为xll文件,excel无法识别。

我不明白我链接的指南第 10 点的含义,因此这可能是我的问题。我认为 def 文件是编译器的输出。为什么指南建议它们是输入?

如果它们是输入,我如何设置代码块以将 def 文件作为输入?

谢谢你。

[编辑] 问题已解决:如果有人遇到同样的问题,问题肯定是导出函数的命名约定。通过正确使用 Def 文件,问题得到解决。

0 投票
2 回答
353 浏览

c - 缺少 MSDN 文档来开发 xll 插件?

我花了很多时间寻找所有 C API XLM 函数的完整文档,但没有成功。

我发现这个页面说明了其中的一些:http: //msdn.microsoft.com/en-us/library/office/bb687910%28v=office.12%29.aspx

但例如,我想了解和使用 xlfAddMenu,但我在 MSDN 上找不到解释我的页面。

你知道是否有任何可用的文件吗?显然,要到达那里并不容易。