How to call library function as custom function from spreadsheet formula?

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-26 09:47:25

问题


This might be the same root cause as in How to call a library function from a spreadsheet drop-down menu generated by the same library, but I still wanted to throw it out there in case there was something new or somehow the situation was different.

The thing is that I want to keep all my custom functions in a library, then add the library to any given spreadsheet, and be able to reference them from a cell formula. In the library:

/**
 * Returns the parameter
 * Eg: (16) to 16
 *
 * @param {object} theparameter the parameter.
 * @return {object} the same object.
 */
function ReturnParam(theparameter){
  return(theparameter);
}

In the spreadsheet script, add the library and give it an identifier: myLib

In the spreadsheet cell formula:

=myLib.ReturnParam(4)

or

=myLib.ReturnParam("hello")

and the final value in the cell be 4 or 'hello'.

However it always shows an Unknown function: 'myLib.ReturnParam' error.

I read about the solutions to add wrapper functions in the spreadsheet script, and as well dislike the inconveniences.

In https://issuetracker.google.com/issues/36755072#comment20, there is "a solution", but I fail to grasp the missing details. (Can someone elaborate?)

Any hope for this case?

Is there an alternative deploying as an add-on, even if not trying to do anything fancy with the add-on?

I couldn't find a google-library or -libraries tag.


回答1:


The solution is to create a function on you Google Apps Script project that calls the library function

/**
 * Description of what your function does
 *  
 * @customfunction
 */
function ReturnParam(theParameter){
  return myLib.ReturnParam(theParameter);
}

Then you could call it from your spreadsheet as a custom function

=ReturnParam(4)


来源:https://stackoverflow.com/questions/49616415/how-to-call-library-function-as-custom-function-from-spreadsheet-formula

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!