我想知道我们是否可以使用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 App Maker构建应用程序。用户单击“创建”按钮后,根据文件是成功发送还是失败发送,弹出的小吃栏应显示“文件发送成功”或“出现问题。文件未发送”。我想在最终部署的应用程序(无底部控制台日志)中向用户指示是否发送了他们的文件。我不知道该怎么做。我尝试创建单独的预先创建的快餐栏(一个成功,一个失败),并根据从serverscript函数返回的内容,使clientscript函数显示其中之一。但是,我不知道如何显示它们。如何在clientscript函数中显示小吃栏弹出窗口?谢谢您的帮助!
PropertiesService的文档将ScriptProperties和UserProperties都列出为:
不推荐使用。此类已弃用,不应在新脚本中使用。
...而DocumentProperties文档中似乎没有页面。
问:为了在新脚本中使用它们,是否有合适的替代品来替代这些类?
我正在使用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) 我的工作与谷歌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) 我需要在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
如果我有2个数组(properties和data):
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中是否有内置函数,该函数以一对一映射输出对象数组?相似 …
使用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()只会显示一次。
我遇到的问题是,我要发出许多API请求,由于要返回的数据大小,所有这些请求都需要花费几秒钟的时间才能返回,并且UrlFetchApp.fetchAll(..)仅返回一个空JS对象数组,例如:[{}, {}, {}, ...]。
我的请求数组看起来像这样(为清楚起见而格式化):
requests = [
{
validateHttpsCertificates: false,
url: 'https://url.com/api/v2/api_key/endpoint/action?params1=false¶ms2=true'
},
{
validateHttpsCertificates: false,
url: 'https://url.com/api/v2/api_key/endpoint/action?params3=false¶ms4=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 / 。
因此,我想知道:
.fetchAll()在运行console.log(...)线路之前会等待返回?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 ×3
arrays ×1
banking ×1
clasp ×1
html ×1
line-breaks ×1
node.js ×1
object ×1
plaid ×1
sorting ×1
sql ×1
typescript ×1