google-apps-script - 自定义函数以行而不是列的形式输出

标签 google-apps-script google-sheets custom-function

以下脚本按行返回 for 循环中的值。是否有办法将结果返回到相邻的列中?

function readMessage(msgId){
  var url = "https://api.pipedrive.com/v1/mailbox/mailThreads/";
  var token = "/mailMessages?api_token=token";
  Logger.log("readMessage called with msgId: " + msgId);
  if (msgId){ // make sure there is a msgId in the cell 
    var rows = [] 
    var response = UrlFetchApp.fetch(url+msgId+token); 
    var dataAll = JSON.parse(response.getContentText()); 
    var dataSet = dataAll;

    var rows = [], data;

    for (var i = 0; i < dataSet.data.length; i++) {
      data = dataSet.data[i];

      rows.push([data.body_url]);
    } 

    Logger.log( JSON.stringify(rows,null,2) ); 

    return rows;
  }

当前输出是-

   A                  B    C    D
1 =readMessage(msgId)
2 "blah blah"
3 "blah blah"

我想要的是-

   A                       B            C          D
1 =readMessage(msgId) "blah blah"  "blah blah"
2 
3 

最佳答案

Google Apps 脚本数据始终采用二维数组的形式。进行可视化很有帮助。

    A   B   C
1 [[A1, B1, C1],
2 [A2, B2, C2]]  

为了返回一行数据,函数应该返回

[[A,B,C]] // 3 columns of data in one row

为了返回一列数据,您可以使用完整的二维数组或单个数组

[[1],[2],[3]]
OR
[1,2,3]

关于google-apps-script - 自定义函数以行而不是列的形式输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48967410/

相关文章:

google-apps-script - 将新工作表添加到 Google 工作簿时发送电子邮件

mysql - 如何在 Google App 脚本中使用 SUBSTRING?

google-apps-script - 返回事件电子表格的完整文件夹路径

javascript - 使用谷歌脚本创建折线图 - 谷歌表作为数据源

google-apps-script - Google 工作表未更新自定义函数返回值

javascript - 重命名 Google 云端硬盘/Google 表格中的文件

google-apps-script - 根据响应表上的唯一 ID 更改表单上上传的文件名

google-apps-script - Google API 返回响应 200 空 JSON

php - array_udiff_assoc() 和 array_diff_uassoc() 有什么区别?

google-apps-script - 如何在自定义函数中求值电子表格公式?