我目前使用以下代码从电子表格中引入许多值
myValues["TitleText"] = ss.getRange('B9').getValue();
然后,我使用与
相同的Google Apps脚本在index.html表单中显示值<div id="title"><?= data.TitleText ?></div>
我想知道我是否应该使用别的东西。也许像ArrayFormula?
我想在我看来,我正在多次回到工作表上,以获得我需要的所有价值。在一次访问中获取所有值会很好,这样可以加快表单的加载和处理速度。
如果可以采用一次旅行方式;它会是什么样子?
答案 0 :(得分:2)
如果数据在数组中,则没有&#34;内置&#34;将一个值与另一个值相关联的方法。使用对象,您可以关联&#34;键&#34;用&#34;值&#34;。有几种方法可以对数组做同样的事情,但它很多,而且很复杂。#34;。是否应该使用数组或对象,取决于&#34;更大的图片&#34;。如果您想要将标题与值相关联,并且标题和值的位置可能会在电子表格中发生变化,那么 MIGHT 在将对象中的数据发送到您的对象之前进行编译是有意义的HTML。但那时存在性能问题。最好在服务器代码中构造HTML,然后将HTML字符串发送回客户端,而不仅仅是数据。
如果你有很多scriptlet,你可能只想尝试一个打印 scriptlet,在&#34; .gs&#34;中创建HTML字符串。服务器代码,然后发回HTML而不是仅发送数据。
如果您以某种特殊格式编译数据,发送数据,那么您需要解密数据并构建HTML,这可能比仅从服务器代码中的开头构建HTML更有效。
getRange()
方法有四种不同的参数配置。您正在使用a1Notation
变体。我会使用这种变化:
getRange(starting row, starting column, number of Rows, number of Columns)
然后你可以使用这样的代码:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('the sheet name');
var allData = sheet
.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn())
.getValues();
如果您只想获取B列中的值,从第2行开始,您可以执行以下操作:
var colB_Data = sheet
.getRange(2, 2, sheet.getLastRow())
.getValues();
getValues()
方法返回二维数组。但是如果你只获得一列数据,那么所有内部数组只有一个元素。如果你需要一维数组,你可以(在这种情况下)将二维数组转换为一维数组:
colB_Data = colB_Data.toString().split(",");