Tag: xll

调用xll函数python

嗨,我想通过python调用一个xll插件的函数。 我已经加载插件,一切运行良好,直到我需要调用一个函数的地方,我的参数是可选的,因此我可以把它留空,然后我得到一个错误。 即:在Excel中,如果我input一个单元格, function1工作正常 =function1('a','b',,'d') 但如果在Python中,我写: import os import numpy as np from win32com.client import Dispatch Path = 'myWeirdApp.xll' xlApp = Dispatch("Excel.Application") xlApp.RegisterXLL(Path) 下面的行不起作用: xllApp.run('function1', 'a','b', , 'd') 有没有人有这种情况下的解决scheme?

附加相同的插件,但从Excel上的不同文件夹启动

我有一个用C ++编写的Excel插件XLL,称它为abc.xll。 我想要做的是编写一个小批处理脚本,当我打电话给“Prod”参数开始时,它将启动Excel中的xll插件在C:\ xllProduction \ abc.xll文件夹中,当我启动它与“开发”参数,它将启动C:\ xllDev \ abc.xll文件夹中的Excel xll。 我知道我可以在.bat文件中使用set local来强制环境variables只对特定的会话有效,我可以使用start excel来启动Excel,但是我不确定如何从一个特定的xll开始。 如果有帮助,我正在使用Excel 2010。 谢谢!

如何从xll调用xlcOnTime

基本上试图在C ++中复制下面的VBA代码我不希望我的Excel加载项返回一个数组(而是我需要一个UDF来更改其他单元格),但是调用Excel4(xlcOnTime,&timer2,2&now,cmd )在系统计时器function中有一个返回码2,即无法设置Excel的计时器。 任何想法? 我试图限制我的加载项1和C + +代码。 我可以通过两个加载项来解决这个问题,一个用C ++,一个用VBA,但是不用。 namespace { UINT timer1 = 0; XLOPER timer2; XLOPER now; }; // //this function is xlfRegister as ApplicationOnTime // int __stdcall application_on_time() { XLOPER ret; XLOPER ref; XLOPER value; //define the destination cells to be changed ref.xltype = xltypeSRef; ref.val.sref.count = 1; ref.val.sref.ref.rwFirst = 10; ref.val.sref.ref.rwLast […]

如何识别Excel是否真的在XLL加载项中closures?

根据MSDN的说法,当插件被卸载时(无论是因为excel正在closures还是正在手动删除加载项),Excel将在xll加载项上调用xlAutoClose。 不幸的是,xlAutoClose在用户试图closures电子表格时也被调用,但是当提示保存他们的工作时取消。 根据Excel加载项开发文档(“在C / C ++中使用Excel加载项开发的财务应用程序”),当Excel 真正closures时,xlAutoClose后面将会调用xlAddInManagerInfo。 不幸的是,我发现它不是真的(在Excel和Excel 2007版本上都testing过)。 XLL加载项有没有可靠的方法来区分尝试的电子表格closures和实际的电子表格closures? 谢谢,卢克

XLL命令(不是UDF):xlSet无法设置多个值

我对XLL编程很新,但是我相信我已经在这个小问题上做了功课。 我想使用xlSet设置多个单元格值,但xlSet只是复制我的数组的第一个值,就好像我已经通过它一个单一的引用。 如果我连续调用每个单元格的xlSet,它的工作原理。 但它很丑,毫无疑问,速度很慢。 我知道xlSet不能从UDF调用。 这不是一个UDF。 在其他地方,我看到有人在xlMulti中有一个结构alignment问题,但是我将同一个xlMulti发送回Excel,所以这不是问题。 (无论如何,我试过/ Zp8编译器开关。) 我开始使用SDK Framework的东西,例如TempActiveRef(1,1,0,2),然后用更直接的XLCALL.H来replace那些调用,主要是为了增加我在这里得到响应的机会。 Office 2010,VSTO 2010,Win7 64bit SP1。 这是什么工作,什么不工作: __declspec(dllexport) int WINAPI testCmd(void) { XLOPER12 ref, xValsInMulti, xResSet; XLMREF12 mref; int i, res; // Build an xltypeRef XLOPER12 that points to three cells, A2:C2 res = Excel12(xlSheetId, &ref, 0); if (res != xlretSuccess) return 0; ref.xltype = […]

Excel的xll可以用来跟踪什么VBA和其他插件调用已经完成,花费的时间和内存使用?

我在某个地方工作之前,他们有一个允许跟踪在Excel中使用的内存量的xll。 另外,当其他dll和xll的电话被logging下来。 这一切都被吐出到基于Excel PID的日志文件中。 然后有一个解决scheme可以用来读取日志到一个可以在数据透视表中使用的格式。 我用search词从各个angular度search了将近一个小时,但是我没有任何运气。 我不记得提供者,但我很确定它不在内部。 希望人们可以帮忙。

在Excel XLOPER中通过char *返回日文字符

我正在从数据源中检索日文字符,并且希望将这些数据返回到XLOPER中的Excel中。 我正在使用日语版本的Excel 2003(因此XLOPERs而不是XLOPER12s)。 wchar_t* pszW = OLE2W(bstrResult); //I have the data I am trying to copy in a CComBSTR ULONG ulSize = ::WideCharToMultiByte( CP_THREAD_ACP, 0, pszW, -1, NULL, 0, NULL, NULL ); if ( ulSize ) { char* tmp = new char[ulSize + 1]; tmp[ulSize]='\0'; ::WideCharToMultiByte( CP_THREAD_ACP, 0, pszW, -1, LPSTR( tmp ), ulSize, NULL, […]

excel xll:函数内调用函数的名称

我有c + + xll程序,这是使用微软excel sdk buit。 有没有任何的excel4v()或excel12v()函数,可以告诉我的名称的Excel用户定义函数,它被调用。 例如说我有两个Excel用户定义函数my_func1()和my_func2()。 说我有另一个函数func(),这是由my_func1()和my_func2()调用。 里面的func()我想把这个excel4v / excel12v函数来确定哪个用户定义函数(my_func1()或my_func2())调用func()。 有没有办法做到这一点 ?

如何针对UsedRange剪辑ExcelReference?

我正在使用Excel-DNA在Excel中开发一些UDF。 从Excel传递到我的UDF的一个参数是一个范围。 使用特定范围时,UDF可正常工作,如“A1:C50”。 以下是我的函数定义的示例: [ExcelCommand()] public static object CalcSMA(object[,] range, int num_points) { … } 但是,如果传递整个列范围(例如“A:C”),则会出现“内存不足”错误。 我可以通过设置参数属性AllowReference = true来避免错误,并将参数types更改为对象,如下例所示: [ExcelCommand()] public static object CalcSMA([ExcelArgument("Range", AllowReference=true)]object range, int num_points) { ExcelReference xref = (ExcelReference)range; … } 但是现在我想知道UDF实际需要多less行。 我可以尝试迭代工作表中的所有行,但效率非常低。 有没有办法将ExcelReference(xref)剪辑到使用的范围? 我想避免使函数volatile(IsMacroType = true),但会这样做,如果需要的话。

缺lessMSDN文档来开发xll添加?

我花了很多时间去查找所有C API XLM函数的完整文档,但都没有成功。 我发现这个页面,说明其中几个: http : //msdn.microsoft.com/en-us/library/office/bb687910%28v=office.12%29.aspx 但是,例如,我想了解和使用xlfAddMenu,我无法find一个解释我的MSDN页面。 你知道是否有任何文件可用? 显然,到达那里并不容易。