首页 > 解决方案 > 谷歌应用脚​​本:在不同的脚本中使用库给我不同的行为

问题描述

我正在使用数据框-js。https://gmousse.gitbooks.io/dataframe-js/content/doc/api/dataframe.html

我已将代码粘贴到 .gs 文件中script1

此代码适用于script1.

function test(){
  var data =[[1,2,3],['a','b','c']]

  var DataFrame = dfjs.DataFrame
 
  var df = new DataFrame(data)

}

但是当添加script1为库时,script2我不能再使用代码了。

function test(){
 
  var data =[[1,2,3],['a','b','c']]

  var DataFrame = script1.dfjs.DataFrame
 
  var df = new DataFrame(data)

}

我收到此错误

Error   
ArgumentTypeError: Array while expecting DataFrame | Array | Object.
_construct  @ dataframe-js 1.4.3.gs:3167
Wrapper @ dataframe-js 1.4.3.gs:3191
ArgumentTypeError   @ dataframe-js 1.4.3.gs:4517
_build  @ dataframe-js 1.4.3.gs:6813
DataFrame   @ dataframe-js 1.4.3.gs:6665

我可以再次粘贴代码。但为什么这不起作用?不知道这是一个dataframe-js问题还是我错过了一些简单的东西。

标签: google-apps-script

解决方案


当我console.log(script1.dfjs.DataFrame)在客户端进行测试时,我确认脚本有效。因此,从 的错误消息中ArgumentTypeError: Array while expecting DataFrame | Array | Object.,我认为可能需要data按值将数组作为字符串传递。我认为这个问题的原因可能是由于this库端和客户端不同。那么当下面的修改反映在你的情况中,你会得到什么结果呢?

对于图书馆方面:

请将以下脚本复制并粘贴到库端的脚本文件中。

function DataFrame(data) {
  return new dfjs.DataFrame(JSON.parse(data));
}

对于客户端:

请在客户端测试以下脚本。

function test(){
  var data =[[1,2,3],['a','b','c']];
  var df = script1.DataFrame(JSON.stringify(data));

}

推荐阅读