gpt4 book ai didi

google-apps-script - 将addRows()中的电子表格数据作为数组传递

转载 作者:行者123 更新时间:2023-12-02 00:51:13 26 4
gpt4 key购买 nike

我正在使用this Calendar Chart guide,而不是在HTML脚本的dataTable.addRows组件中添加静态数据,而是尝试从this spreadsheet传递仅包含2列(“日期”和“数字”类型列)的数据。

当我打印函数的结果时,将其复制粘贴到dataTable.addRows组件中作为静态值,就可以了!

我尝试过以“数组”和“字符串”两种格式传递数据,但是在Chrome浏览器的控制台中不断出现以下错误-Uncaught (in promise) Error: Every row given must be either null or an array.Uncaught Error: Row given with size different than 2 (the number of columns in the table).
我也尝试过创建一个for循环并使用addRow而不是addRow ,但这也没有用。

The script已部署为Web应用程序,可以访问here

数组格式:getEventsArrayFormat

function getEventsArrayFormat() {
var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var range = activeSheet.getDataRange();
var values = range.getDisplayValues();
var rowDisplay = range.getLastRow();
var columnDisplay = range.getLastColumn()
var data1 = [];
for (var i = 1; i < rowDisplay; i++ ) {
var rowData = [];
data1 = data1 + "[ new Date('"
for (var j = 0; j < columnDisplay; j++ ) {
if (j == 0) {
data1 = data1 + values[i][j] + "'), "
} else if (j == 1 && i < rowDisplay - 1) {
data1 = data1 + values[i][j] + " ],"
} else if (j == 1 && i < rowDisplay) {
data1 = data1 + values[i][j] + " ]"
}
}
rowData.push(data1)
data1 = data1 + "\n";
}
return rowData;
}

字符串格式:getEventsStringFormat
function getEventsStringFormat() {
var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var range = activeSheet.getDataRange();
var values = range.getDisplayValues();
var rowDisplay = range.getLastRow();
var columnDisplay = range.getLastColumn()
var data1 = '';
for (var i = 1; i < rowDisplay; i++ ) {
data1 = data1 + "[ new Date('"
for (var j = 0; j < columnDisplay; j++ ) {
if (j == 0) {
data1 = data1 + values[i][j] + "'), "
} else if (j == 1 && i < rowDisplay - 1) {
data1 = data1 + values[i][j] + " ],"
} else if (j == 1 && i < rowDisplay) {
data1 = data1 + values[i][j] + " ]"
}
}
data1 = data1 + "\n";
}
Logger.log(data1)
return data1;
}

希望能够通过使用电子表格中的数据来看到与Google画廊中共享的 View 完全相同的 View 。

最佳答案

我认为问题在于您无法使用google.script.run check out 这些restrictions来传递日期。因此,只需将它们转换为字符串即可。如果您希望它们成为客户端的日期,请使用JavaScript将其转换回日期。

function getEventsArrayFormat() {
var sh=SpreadsheetApp.getActive().getSheetByName('Sheet1');
var rg=sh.getRange(2,1,sh.getLastRow()-1,2);
var vA=rg.getValues();
for(var i=0;i<vA.length;i++) {
vA[i][0]=Utilities.formatString('%s/%s/%s',new Date(vA[i][0]).getMonth()+1,new Date(vA[i][0]).getDate(),new Date(vA[i][0]).getFullYear());
}
return vA;
}

关于google-apps-script - 将addRows()中的电子表格数据作为数组传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57436618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com