从Google电子表格获取值

时间:2018-09-24 22:30:45

标签: javascript google-apps-script google-apps

我对App Script还是很陌生,但是通常我想知道我想做的事是否可能...对您的任何帮助都将不胜感激。

因此,我有一个Google电子表格,其中有些列设置如下:

Column A   Column B

name       name.com
name2      name2.com
name3      name3.com

我希望能够获取每一列中的所有值并将其解析为类似于最终文件的格式,以便我可以将其复制并粘贴到其他位置:

<#function linker trackerName>
<#local link = { 
"name" : "name.com", 
"name2" : "name2.com",
"name" : "name2.com"

}>
</#function>

我猜测使用应用程序脚本很有可能,但是我不确定格式或如何将其解析为文本文件?

再次获得有关发射点的帮助或指导将非常棒!

这是我要修改的脚本。.我做了一个菜单,但是当我运行该功能时,什么也没发生:

 function onOpen() {
   var ui = SpreadsheetApp.getUi();
   ui.createMenu('Get Values')
       .addItem('Go!', 'getValues')
       .addToUi();
    }


   function getValues() {

   var values = 
   SpreadsheetApp.getActiveSheet().getDataRange().getValues();

    values.forEach( function(row) {
    row[0] // column index as 4 ... I beleive this should get all values 
    in each row / column? 
    });
    }

1 个答案:

答案 0 :(得分:1)

  1. 您要从菜单栏手动运行脚本。
  2. 您要从电子表格中检索值。
  3. 您要创建新文档,包括添加了检索值的文本值。
  4. 可以在脚本中使用模板。

我了解您上方的需求。当这反映到您的脚本时,该修改如何?该脚本的流程如下。我认为您的情况有几个答案。因此,请将此视为其中之一。

流量:

  1. 将模板值设置为tempHeadertempFooter
  2. 从电子表格中检索值。
  3. 转换检索到的值以在模板上使用。
  4. 合并转换后的值和模板值。
  5. 创建新文档并设置值。

修改后的脚本:

function getValues() {
  var fileName = "sampleName"; // This is a filename of new Document.

  var tempHeader = "<#function linker trackerName>\n<#local link = {\n";
  var tempFooter = "\n}>\n</#function>\n";
  var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
  var v = values.slice(1, values.length);
  var res = v.map(function(e, i){return '"' + e[0] + '" : "' + e[1] + '"' + (i < v.length - 1 ? "," : "")}).join("\n");
  DocumentApp.create(fileName).getBody().setText(tempHeader + res + tempFooter);
}

注意:

    可以使用脚本中的
  • onOpen()。打开电子表格后,您可以在菜单栏中运行脚本。
  • 在此修改后的脚本中,新文档的文件名为fileName。因此,请根据您的情况进行修改。
  • 我担心“ A”列中的值可能相同。因此,在转换值时,我没有将其作为对象处理。