Properties Google应用程序脚本批量集属性
另一个气体问题。我阅读了关于和批量设置属性的文档,以及(再次)关于的文档。然而,我不熟悉Javascript,对GAS还是新手,因此我一直在运行API调用的速率限制 基本上,我想从电子表格中“获取”所有这些属性,将它们放入数组、对象或其他东西中,然后批量设置所有属性。我的键和值都是正确的,我只是不知道如何将它们临时存储在JS对象或数组中,或者存储在Properties Google应用程序脚本批量集属性,properties,google-apps-script,Properties,Google Apps Script,另一个气体问题。我阅读了关于和批量设置属性的文档,以及(再次)关于的文档。然而,我不熟悉Javascript,对GAS还是新手,因此我一直在运行API调用的速率限制 基本上,我想从电子表格中“获取”所有这些属性,将它们放入数组、对象或其他东西中,然后批量设置所有属性。我的键和值都是正确的,我只是不知道如何将它们临时存储在JS对象或数组中,或者存储在setProperties(Object)方法将接受的某些数据类型中 以下是当前代码(可怕的睡眠计时器是唯一工作的东西…): 函数集子序列属性(pro
setProperties(Object)
方法将接受的某些数据类型中
以下是当前代码(可怕的睡眠计时器是唯一工作的东西…):
函数集子序列属性(propertyRange,sheet){
//根据新的范围值获取其他库属性。
//propertyRange是键/值对的2列1行范围
var tableRange=ScriptProperties.getProperty(propertyRange);
var dataRange=sheet.getRange(tableRange);
var data=dataRange.getValues();
//为批量设置创建“属性”对象,以防止过度使用API调用
//var属性=新数组(data.length);
//为每行设置一个新脚本属性
对于(变量i=0;i
如何将propertyKey
和propertyValue
添加到一个对象中,以一次性进行批量设置?伪想法在代码块中被注释掉。既然你说你是Javascript新手,我想你也是Javascript新手。确实存在一个ScriptProperties.setProperties()
方法,该方法将JSON对象作为参数
仅修改代码的setProperty()位,以下是您可以执行的操作
function setSubsequentProperties(propertyRange, sheet) {
// Get the other Library Properties based on the new Range values.
// propertyRange is the 2-column 1-row Range for the key/value pairs
var tableRange = ScriptProperties.getProperty(propertyRange);
var dataRange = sheet.getRange(tableRange);
var data = dataRange.getValues();
// Create a 'properties' Object for bulk-setting to prevent overusing API calls
//var properties = new Array(data.length);
// Set a new Script Property for each row
var myObject = {} ;
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var propertyKey = row[0];
var propertyValue = row[1];
// var myObject = allMyPropertiesInOneObject
myObject[propertyKey] = propertyValue;
}
ScriptProperties.setProperties(myObject);
}
函数集子序列属性(propertyRange,sheet){
//根据新的范围值获取其他库属性。
//propertyRange是键/值对的2列1行范围
var tableRange=ScriptProperties.getProperty(propertyRange);
var dataRange=sheet.getRange(tableRange);
var data=dataRange.getValues();
//为批量设置创建“属性”对象,以防止过度使用API调用
//var属性=新数组(data.length);
//为每行设置一个新脚本属性
var myObject={};
对于(变量i=0;i
既然你说你是Javascript新手,我想你也是Javascript新手。确实存在一个ScriptProperties.setProperties()
方法,该方法将JSON对象作为参数
仅修改代码的setProperty()位,以下是您可以执行的操作
function setSubsequentProperties(propertyRange, sheet) {
// Get the other Library Properties based on the new Range values.
// propertyRange is the 2-column 1-row Range for the key/value pairs
var tableRange = ScriptProperties.getProperty(propertyRange);
var dataRange = sheet.getRange(tableRange);
var data = dataRange.getValues();
// Create a 'properties' Object for bulk-setting to prevent overusing API calls
//var properties = new Array(data.length);
// Set a new Script Property for each row
var myObject = {} ;
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var propertyKey = row[0];
var propertyValue = row[1];
// var myObject = allMyPropertiesInOneObject
myObject[propertyKey] = propertyValue;
}
ScriptProperties.setProperties(myObject);
}
函数集子序列属性(propertyRange,sheet){
//根据新的范围值获取其他库属性。
//propertyRange是键/值对的2列1行范围
var tableRange=ScriptProperties.getProperty(propertyRange);
var dataRange=sheet.getRange(tableRange);
var data=dataRange.getValues();
//为批量设置创建“属性”对象,以防止过度使用API调用
//var属性=新数组(data.length);
//为每行设置一个新脚本属性
var myObject={};
对于(变量i=0;i
为了更新这个答案,谷歌已经弃用了ScriptProperties,并用PropertiesService取代了它。您可以在Properties对象上使用setProperties()解决相同的问题,但您必须首先使用对PropertiesService的调用来选择所需的存储类型:
var myObject={};
对于(变量i=0;i 设置属性(myObject)代码>为了更新这个答案,Google已经弃用了ScriptProperties,并用PropertiesService替换了它。您可以在Properties对象上使用setProperties()解决相同的问题,但您必须首先使用对PropertiesService的调用来选择所需的存储类型:
var myObject={};
对于(变量i=0;i 设置属性(myObject)这是一些非常简单的文档!我看了一下,对Javascript有了更多的了解,还让JSON对象设置了批量参数!斯瑞克:至少可以说,你太棒了。我很感谢你在我的气体问题上给我的所有帮助:)我愚蠢的函数,设置了137个属性,之前运行了3分钟,现在运行了10秒:太棒了:DRight抱歉,我忘了这么做。现在完成:)这是一些非常简单的文档!我看了一下,对Javascript有了更多的了解,还让JSON对象设置了批量参数!斯瑞克:至少可以说,你太棒了。我感谢你在我的气体问题上给我的所有帮助:)我愚蠢的13个函数