问题标签 [xlw]

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 回答
2228 浏览

python - Excel sheet writing all data in one column

I'm having a problem writing my text to an excel sheet:

Here's my code:

And here's input.txt:

But input.txt is writing into only one column, how can I get it to write into different columns?

0 投票
1 回答
604 浏览

visual-studio-2015 - xlw in visual studio 2015: RunInterfaceGenerator error code 3

I'm trying to use xlw with Visual Studio 2015. I downloaded xlw-5.0.2f0 and built InterfaceGenerator.exe and the xlw .dll.

Then I open an example Template in VS2015. The XLL project seems to build, but in the end fails with the error message:

Error MSB3073 The command ""....\VC\bin\NMAKE" /f RunInterfaceGenerator.nmake ENVIRON=Debug LIBRARY=ObjectCacheDemo vc=vc12 ALL " exited with code 3. RunInterfaceGenerator C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.MakeFile.Targets 37

I suspect something needs to be done to the RunInterfaceGenerator project, which it seems is fine for Visual Studio 2013 and not above?

0 投票
1 回答
60 浏览

c++ - DLL 函数名限制 - 函数名末尾的数字好吗?

我正在使用 Xlw 框架,它为在 Excel 中编写 C++ 插件提供了方便的包装器。我遇到了一个问题:当我为 Excel 中使用的 Excel 函数命名时,该函数在 Excel 中没有“公开”(即由加载项加载)。当我删除最后一个数字,或在函数名称中包含数字但用非数字完成函数时,它看起来很好。

(C++ Excel 加载项只是将 .dll 重命名为 .xll,并在 .dll 内容中添加了一些其他细节)。

对于导出的 .dll 函数,我没有看到任何相关的 Microsoft 命名限制,但我的问题是:创建一个以数字作为最后一个字符的导出 .dll 函数是否可以?如果是这样,我猜这个问题与 Excel 或 Xlw 框架有关。

0 投票
1 回答
205 浏览

c++ - XLL 由 XLW 制造,带有 BOOST UBLAS MyMatrix 数据类型转换为 Double ** 失败

我正在使用 XLW 创建要在 Excel 中注册的 XLL 函数。XLL 在 C++ DLL 中调用实际的数学模型。

我正在使用带有 UBLAS 的 BOOST 来帮助将 XLL MyMatrix 数据类型转换为 C++ DLL 用于输入的双 **。这可以正确构建,并且我可以在我的开发环境中正确使用具有数组输入和输出的函数。

但是,当我使用 InstallShield 安装程序在目标计算机上安装我的 Excel 加载项时,具有数组输入的函数返回“转换为双精度”错误,而不是来自 C++ DLL 的函数返回值。

这是我到目前为止尝试过的,没有运气:

1.使用 BOOST BCP 收集所有的 Numeric 库(UBLAS 没有出现),并将其包含在我的 Visual Studio 2013 项目中。然后我将 BOOST_ROOT 从包含中取出并使用项目属性,以便它使用项目中的内容(根据我的有限理解)

  1. 在目标计算机上安装这两个位的所有 Microsoft C++ Redistributables。

  2. 在目标计算机上下载并构建 BOOST,并创建 BOOST_ROOT 环境变量。在目标计算机上安装了 XLW,并在目标计算机上匹配了开发环境中的所有环境变量。

  3. 使用 Dependency Walker 来验证所有依赖 DLL 是否在目标计算机上。

一切都没有运气。我的安装程序需要包含什么?感谢您的时间。

开发环境:Windows 10 和 Visual Studio 2013 和 2015

目标计算机:装有 Office 2016 的 Windows 10

MyMatrix 声明:

函数声明中的 MyMatrix:

调用 C++ DLL 并使用 Box 将 MyMatrix 转换为 double **

盒子做转换

0 投票
1 回答
162 浏览

c++ - Excel XLL 插件可以有多少内存?

在XLW library的帮助下,我正在使用 C++ 为 Microsoft Excel 编写一个 .XLL 插件。我的操作系统是windows 7 64位版本,32 GB RAM;但我的 Excel 是 Excel 2010,32 位版本。

检查GlobalMemoryStatusEx,它显示 XLL 中的代码只能看到大约 1200 MB 的可用虚拟内存(来自ullAvailVirtualstruct _MEMORYSTATUSEX),尽管可用的物理内存(ullAvailPhys)大约是 23 GB。

由于我的代码需要相当多的内存(每个计算线程大约 100MB),在发出 12 个线程后它会遇到错误的分配错误。

有没有办法增加可用内存?

  1. 这是 ExcelXLL插件的限制吗?在控制台应用程序中,GlobalMemoryStatusEx报告大约 2034 MB 可用虚拟内存。
  2. 这是一个限制XLW library吗?
  3. 这是一个限制32-bit Excel吗?
0 投票
0 回答
888 浏览

excel - 在 Excel VBA 中注销和注册 XLL

我有一张工作表,当加载时,它会传递到它加载的 XLL 的路径。我需要一个可以取消注册该 XLL 并注册一个新的 VBA 宏。我知道如何注册一个新的 XLL。如何取消注册原始 XLL?
我找到了这段代码:

但这既不会删除原始函数名称(尽管它似乎确实使它们无法使用),也不会添加新的 XLL。DLL 是使用 c++\XLW 创建的,因此如果有帮助,我也可以访问此代码。谢谢,斯坦

0 投票
1 回答
1860 浏览

python - 处理可变列数数据框 - Python

我正在尝试使用 pandas 将列表列表写入 excel 工作表,列表如下所示:

主列表中的这些列表的数量可以达到 1000 个。我还想将它们标记为 colums1、colomns2,例如直到 colums100。在同一张纸上。任何熟悉熊猫的人可以帮助我吗?因为这对某些人来说真的很容易吗?

0 投票
1 回答
2048 浏览

c++ - C++ Excel 加载项加载错误:Excel 将 XLL 文件加载为文本文件

我正在使用 C++ 和XLW library为 Excel 构建 XLL 插件。

它在我的 PC 和许多其他 PC 上运行良好。但在某些情况下,当我将 XLL 拖到新的 Excel 窗口中时,会出现以下错误:

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

如果单击yes,则 Excel 会将 XLL 作为文本文件打开,显示如下:

MZÿÿ¸@ Í!¸LÍ!这个程序不能在 DOS 模式下运行。

就在第一行。预计不会发生这种情况。这可能是什么原因?

这是所有机器的系统配置:

  • Microsoft Windows 7 Professional 64 位(操作系统)
  • 微软 Excel 2010 32 位
0 投票
1 回答
396 浏览

python - python xlwt,写入下一个可用行

我知道你可以做到这一点

或者你可以做一个 for 循环,但我有多个用户在使用我的文件,我不知道当前行的编号是多少。

我可以创建一个 varCurrentRow并在每次新用户加入时增加它,但这可能会发生:

User1 正在写入文件 ( CurrentRow = 1)

User2 开始写入文件 ( CurrentRow = 2)

所以 User1 的数据将被写入第 2 行。

有没有类似的

0 投票
0 回答
20 浏览

c++ - 如何获取 LPXLOPER 地址?

我使用了一些 xll 开放库(xlw,xlladdin)以及 xllsdk,但还没有找到答案。

我正在使用以下代码来调用我的函数:

我的问题是:如何获取参数 x 的地址?(例如“B3”或 rowfirst=3 和 colfirst=2)。

我从这篇文章中找到了答案,但 xll+ 不是免费的。

有人可以指出我的方法吗?