我对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?
});
}
答案 0 :(得分:1)
我了解您上方的需求。当这反映到您的脚本时,该修改如何?该脚本的流程如下。我认为您的情况有几个答案。因此,请将此视为其中之一。
tempHeader
和tempFooter
。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
。因此,请根据您的情况进行修改。