标签: google-apps-script

集成格子和Google Apps脚本

我想编写一个Google Apps脚本,可以从银行提取交易数据并将其添加到Google电子表格中。我以为格子可能是个不错的选择,但是我无法弄清楚如何在Google Apps脚本中使用格子API。格子支持Node.js,而Google Apps脚本使用JavaScript云脚本语言。

Google Apps脚本确实允许您使用外部API,但我相信Plaid可以使您通过Link添加银行。

有谁知道有更好的方法吗?

谢谢!

javascript banking node.js google-apps-script plaid

1
推荐指数
1
解决办法
557
查看次数

Google脚本在Google Spreadsheet中选择整行

我想知道我们是否可以使用Google脚本在电子表格中选择一行,在此处输入图片描述

无论如何首先我已经通过使用此功能尝试使用列,但是我得到了数据错误(未找到):如果您有主意:)

  function testGetFullColumn()
{
  getFullColumn('A', 1) ;
}

// This function gets the full column Range like doing 'A1:A9999' in excel
// @param {String} column The column name to get ('A', 'G', etc)
// @param {Number} startIndex The row number to start from (1, 5, 15)
// @return {Range} The "Range" object containing the full column: https://developers.google.com/apps-script/class_range
function getFullColumn(column, startIndex){
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var lastRow = sheet.getLastRow();
  return sheet.getRange(column+startIndex+':'+column+lastRow);
}
Run Code Online (Sandbox Code Playgroud)

编辑:我知道getRange,但我会很酷^^^^^^像我所附的照片一样直观地看到选择,因为我尝试过

var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet …

google-sheets google-apps-script

1
推荐指数
1
解决办法
9642
查看次数

在Google App Maker中,如何显示快餐栏消息?

我目前正在尝试使用Google App Maker构建应用程序。用户单击“创建”按钮后,根据文件是成功发送还是失败发送,弹出的小吃栏应显示“文件发送成功”或“出现问题。文件未发送”。我想在最终部署的应用程序(无底部控制台日志)中向用户指示是否发送了他们的文件。我不知道该怎么做。我尝试创建单独的预先创建的快餐栏(一个成功,一个失败),并根据从serverscript函数返回的内容,使clientscript函数显示其中之一。但是,我不知道如何显示它们。如何在clientscript函数中显示小吃栏弹出窗口?谢谢您的帮助!

google-apps-script google-app-maker

1
推荐指数
1
解决办法
762
查看次数

ScriptProperties和UserProperties已被弃用

PropertiesService的文档将ScriptPropertiesUserProperties都列出为:

不推荐使用。此类已弃用,不应在新脚本中使用。

...而DocumentProperties文档中似乎没有页面。

问:为了在新脚本中使用它们,是否有合适的替代品来替代这些类?

google-apps-script

1
推荐指数
1
解决办法
524
查看次数

缩写冗长的TypeScript类型

我正在使用Typescript(通过clasp工具)开发Google Apps脚本(GAS).

我通过运行导入了类型定义npm i -S @types/google-apps-script.

有些类型很长,例如:

let sheet: GoogleAppsScript.Spreadsheet.Sheet
Run Code Online (Sandbox Code Playgroud)

有没有办法在文件中定义缩写?例如,

declare Sheet = GoogleAppsScript.Spreadsheet.Sheet
Run Code Online (Sandbox Code Playgroud)

google-apps-script typescript clasp

1
推荐指数
1
解决办法
98
查看次数

Google Script排序故障排除(作为2个功能但不合并)

我的工作与谷歌Apps脚本在列D.列D的号码数量在AC列中的数据进行排序依赖于列中的数据交流(见下文).

https://docs.google.com/spreadsheets/d/11QSZPAl3nCs7nzpZIR4FzjfkPUyBBut1pD2K0919UB8/edit?usp=sharing

我试图让它在顶部有一个空行(在A6:C6中),因此可以输入新数据,然后在排序时它将向下移动到主列表(A7:C299)和一个新的空行将再次出现在A6:C6中.

我试图通过移动新条目表底部,然后有它像是这样做,但出于某种原因,一旦它已被移动并不新条目排序.如果我删除了排序的代码,它会正确移动,如果我只是要对代码进行排序(在它复制粘贴A6:C6中的数据之后),它也可以工作,但是当这些功能合并时它不会吨.任何想法或其他方式来实现这一目标?谢谢!

function SortList() {

var sheet = SpreadsheetApp.getActiveSpreadsheet();
var range = sheet.getRange("A7:D299");

// Takes values in first row, moves then to end of list and clears contents in first row, then sorts list

var copyrange = sheet.getRange("A6:C6");
var pasterange = sheet.getRange("A298:C298");
var copyvalues = copyrange.getValues();


pasterange.setValues(copyvalues); 
copyrange.clearContent();

// Sorts by the values in the first column (A)
range.sort({column: 4, ascending: false});

}
Run Code Online (Sandbox Code Playgroud)

sorting google-sheets google-apps-script

1
推荐指数
1
解决办法
292
查看次数

是否有脚本为单元内公式绕过50000个字符?

我需要在Google表格中运行这个(很长)公式,并且遇到了极限错误:

出问题了

您的输入在一个单元格中最多包含50000个字符。

有没有解决方法?


我的公式是:

=ARRAYFORMULA(SPLIT(QUERY({B!A1:A100; ........ ; CA!DZ1:DZ100}, 
 "select * where Col1 is not null order by Col1 asc", 0), " "))
Run Code Online (Sandbox Code Playgroud)

完整公式是: pastebin.com/raw/ZCkZahpw

为Pastebin道歉...我在这里也遇到了一些错误:

注1:由于它是一个很长的公式,因此它的输出应为〜100行×3列。 注2:到目前为止,我设法绕过了JOIN/ TEXTJOIN对于50000+个字符,甚至50000个字符限制

sql google-sheets google-apps-script array-formulas google-sheets-formula

1
推荐指数
1
解决办法
827
查看次数

Javascript一对一对象映射(内置函数?)

如果我有2个数组(propertiesdata):

properties = [name, height, weight, zone];

data = [
  ['Luke Skywalker', 123, 112, 'B'],
  ['Jawa', 12, 8, 'B'],
  ['Hutt', 200, 999, 'C']
];
Run Code Online (Sandbox Code Playgroud)

并且我想创建一个对象数组(statistics):

statistics = [{
    name: 'Luke Skywalker',
    height: 123,
    weight: 112,
    zone: 'B'
  },
  {
    name: 'Jawa',
    height: 12,
    weight: 8,
    zone: 'B'
  }, {
    name: 'Hutt',
    height: 200,
    weight: 999,
    zone: 'C'
  }
];
Run Code Online (Sandbox Code Playgroud)

通常,我只会使用map over data[],创建一个temp对象,然后将其推入statistics[]

但是由于我知道所有其他条目data都具有相同的维度和数据类型。我也知道从properties到一对一的映射data。javascript中是否有内置函数,该函数以一对一映射输出对象数组?相似 …

javascript arrays object google-apps-script

1
推荐指数
1
解决办法
100
查看次数

如何设置正文电子邮件中的变量一次运行?

使用for循环创建主体。我只想sheet.getName()跑一次

到目前为止,sheet.getName()循环每一行。我该如何命名(电池2和电池3)仅显示一次?下面是屏幕截图: 在此处输入图片说明

 if(resultArr.length>0){
 var subject = 'Range exceeded Alert' + "" + sheet.getName();

 //Creates a body through the obtained values

 for(var m=0;m<resultArr.length;m++){
  body+= sheet.getName() + "<br>" + "For Part No "+resultArr[m] 
  [0].toString()+" and Month "+resultArr[m][1]
  .toString()+", Value is "+resultArr[m][2].toString()+"<br>";
            }

        }
Run Code Online (Sandbox Code Playgroud)

我希望sheet.getName()只会显示一次。

html line-breaks google-sheets google-apps-script

1
推荐指数
1
解决办法
41
查看次数

Google Appscript / UrlFetchApp.fetchAll()函数是否可以同步运行?

我遇到的问题是,我要发出许多API请求,由于要返回的数据大小,所有这些请求都需要花费几秒钟的时间才能返回,并且UrlFetchApp.fetchAll(..)仅返回一个空JS对象数组,例如:[{}, {}, {}, ...]

我的请求数组看起来像这样(为清楚起见而格式化):

requests = [
  {
    validateHttpsCertificates: false,
    url: 'https://url.com/api/v2/api_key/endpoint/action?params1=false&params2=true'
  },
  {
    validateHttpsCertificates: false,
    url: 'https://url.com/api/v2/api_key/endpoint/action?params3=false&params4=true'
  }
];
Run Code Online (Sandbox Code Playgroud)

发出我的请求的代码:

responses = UrlFetchApp.fetchAll(requests);

// returns back '[{}, {}]'
console.log(JSON.stringify(responses));
Run Code Online (Sandbox Code Playgroud)

我可以通过数据库确认正在运行API调用,因为AWS RDS性能指标显示数据库查询正在运行,并且我还可以确认API本身通过NewRelic响应为200,这就是我的直觉是m未UrlFetchApp.fetchAll()正确使用GAS / 。

因此,我想知道:

  1. GAS是否同步运行,也就是.fetchAll()在运行console.log(...)线路之前会等待返回?
  2. 我真的打fetchAll正确吗?目前不知所措,而Google Appscript文档充其量是微不足道的。

预先感谢您的帮助。

编辑:

我成功使用fetchAll 迁移到fetch,例如:

// synchronously fetching one by one
requests.map(request => UrlFetchAll.fetch(request.url, { validateHttpsCertificates: false });
Run Code Online (Sandbox Code Playgroud)

javascript google-apps-script google-data-studio

1
推荐指数
1
解决办法
45
查看次数