javascript - Google App Scripts Array 未按预期写入工作表
问题描述
使用谷歌应用程序脚本我试图将来自多个谷歌表的数据合并到一个表中。为此,我使用 push 将每个工作表的值保存到数组中。该数组似乎正在正确保存数据,但是在将其写出时某些内容无法正常工作。它似乎是用于写出数组的长度函数。
这是日志文件中的数组值:
[[[Text 1, Text 2, Gallon, 17.12, Tier 2 Generic Chem, 1.0, 125.0, 280.0, 120.0, , 95.0, 55.0, , , , 150.0, , 826.0, 14141.12, , , ], [Text 3, Text 4, Gallon, 16.11, Tier 2 Generic Chem, , , 270.0, , , , , , , , , , 270.0, 4349.7, , , ]]]
问题似乎与以下代码有关,可能是因为上面有 3 [ int he 数组,但我不确定如何修复它,因此它引用了正确的元素。
consol_sheet.getRange(2,1,finalvalues2.length,finalvalues2[0].length).setValues(finalvalues2);
期望值:
finalvalues2.length = 2
和finalvalues2[0].length = 21
完整代码:
function getLastDataRow(sheet) {
var lastRow = sheet.getLastRow();
var range = sheet.getRange("B" + lastRow);
if (range.getValue() !== "") {
return lastRow;
} else {
return range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
}
}
function iterateSheets2()
{
var ss=SpreadsheetApp.getActive();
var folder=DriveApp.getFolderById('1k6ja-fmgxiVSY_Kw3kuwLTXWIkQCmTmD');//replace id with actual id of folder
var files=folder.getFilesByType(MimeType.GOOGLE_SHEETS);
var consol_sheet = SpreadsheetApp.openById('1HpQYDC8eRVLbEzOOGKsqHE6RGBKTE-6sqx5kTf8-TzM').getActiveSheet();
consol_sheet.clear()
var final_values = [];
var finalvalues2 = [];
while(files.hasNext())
{
var file=files.next();
Logger.log(file.getName());
var ts=SpreadsheetApp.openById(file.getId()); //file.getId()
var allShts = ts.getSheetByName('FY20')
var lr = getLastDataRow(allShts)
var consol_values = allShts.getRange(9,1,lr-8,22).getValues();
finalvalues2.push(consol_values[0])
Logger.log(finalvalues2)
}
// consol_sheet.getRange(2,1,consol_values.length,consol_values[0].length).setValues(consol_values);
consol_sheet.getRange(2,1,finalvalues2.length,finalvalues2[0].length).setValues(finalvalues2);
解决方案
推荐阅读
- typescript - 使用另一个对象属性分配对象的属性会调用 Typescript 中的错误
- php - 如何将数组传递给 where 条件?
- ffmpeg - 使用 rtc_use_h264=true 构建 WebRTC 时出错
- postgresql - 如何阻止从 kubernates 中的其他命名空间到 db pod & service (DNS) 的流量?
- python - ImportError:无法从“torch.jit.annotaions”导入名称“可选”
- python - 计算 pymongo 集合中的文档
- javascript - Discord.js 嵌入错误无法发送空消息
- deep-learning - 我们是否应该小写输入数据以(预)使用拥抱脸训练 BERT 无大小写模型?
- pandas - 向现有的 pandas 索引添加多个索引级别
- sql - SQL Server:当它有一个标识号时合并到没有重复的表中