我正在使用Google Apps脚本,并想知道我是否可以使用Google提供的任何编辑器.(我购买了Sublime Text,并希望使用它.)谷歌提供的是一个恶心的文字,即使我有一个巨大的屏幕和语法颜色,我觉得有点难以在白色背景上区分小文本,我没有像大量自定义键盘快捷键,我的所有包装等的Sublime的美女.
每当我刷新的电子表格(在已改变了它的一些应用程序的脚本代码) CMD- R,Safari会自动关闭脚本编辑器选项卡.
如何避免此标签被关闭?
这是来自 Google 电子表格中包含的脚本的代码。唯一的其他代码是onOpen创建菜单和showDialog()函数的代码
function showDialog(){\n userInterface=HtmlService.createHtmlOutputFromFile(\'test\');\n SpreadsheetApp.getUi().showModelessDialog(userInterface, \'Testing Inputs\');\n}\nRun Code Online (Sandbox Code Playgroud)\n这是我的 JavaScript
\nfunction showDialog(){\n userInterface=HtmlService.createHtmlOutputFromFile(\'test\');\n SpreadsheetApp.getUi().showModelessDialog(userInterface, \'Testing Inputs\');\n}\nRun Code Online (Sandbox Code Playgroud)\n这就是我在控制台中单击与“测试代码”相关的链接时看到的内容。
\n<script>\n var idA=[\'pdCliT\',\'pdLocT\',\'pdTypS\',\'pdNamT\',\'pdSupT\',\'pdOutS\',\'pdGasT\',\'pdFloS\',\'pdAmiS\',\'pdUopN\',\'pdVolN\',\'pdDru\',\'pdLOMN\'];\n $(function(){});\n function testInputs(){\n console.log(\'idA.join(\\\',\\\')= %s\',idA.join(\', \'));\n for(var i=0;i<idA.length;i++){\n var id=\'#\' + idA[i];\n var type=String(idA[i]).slice(-1);\n console.log(\'idA[%d]=%s , id= %s\',i,idA[i],id); \n switch(type){\n case \'N\':\n var min=$(id).attr(min);\n var max=$(id).attr(max);\n var val=$(id).val();\n console.log(\'type: number, min: %s, max: %s, val: %s\',min,max,val);\n break;\n case \'T\': \n var val=$(id).val();\n console.log(\'type: text, value: %s\',val);\n break;\n case \'S\':\n console.log(\'value: …Run Code Online (Sandbox Code Playgroud) javascript web-applications google-sheets google-apps-script google-chrome-devtools
我正在创建一个包含相关脚本编辑器中大量代码的大型Google电子表格.
当我在LINE 1上编写句点时,我得到自动完成帮助(参见下面的代码),但是在LINE 2上写句点时却没有.在LINE 2上写句点时,是否可以使用JSDoc语法获得自动完成帮助?
我没有成功使这适用于普通的javascript对象和Spreadsheet相关的对象.我对两者都很感兴趣.
/** Failed attempt on getting autocomplete help using JSDoc on a google Range object
* @returns {Range}
*/
function getMyRange() {
return SpreadsheetApp.getActiveSpreadsheet().getRangeByName('myRange');
};
/** Failed attempt on getting autocomplete help using JSDoc on standard JS-object
* @returns {Array}
*/
function getMyArray() {
return SpreadsheetApp.getActiveSpreadsheet().getRangeByName('myRange');
};
function test() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// Please think of the code below as 4 separate examples, nothing
// of the below is meant to compile …Run Code Online (Sandbox Code Playgroud) autocomplete google-apps-script jsdoc3 google-apps-script-editor
我在 Google Sheet 中的 App Script 遇到以下问题。
我想在我的工作表中基于表格制作一行的不同副本。我想做类似的事情
input1=[[1,2,"a"]];
input2=[[4,5,"b"],[7,8,"c"]];
function (input1,input2) {
\\ input# is a row, ie. an array with single element, which is another array
\\ The rows input# represent are of equal length
out=[];
copy1=input1[0];//copy1 is a reference to input1[0]
copy2=input1[0];//copy2 is a reference to input1[0]
for (i=0;i<input1.length,i++) {//input1.length is 1
copy1[i]+=input2[0][i];
copy2[i]+=input2[1][i];
}
out.push(copy1,copy2);//copy1=[5,2,a] copy2=[8,2,a]
return out
}
Run Code Online (Sandbox Code Playgroud)
我希望out看起来像
out=[[5,7,"ab"],[8,10,"ac"]];//[[5,2,a],[8,2,a]]
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。输出看起来像每当我修改copy1或 时copy2,它input1本身就被修改了。
这里有什么问题?如何创建一个新的数组变量,将其值分配为与现有数组相等并修改新数组而不更改旧数组?输入数组的元素(元素)由混合数字和字符串组成是否可以?
我今天早上创建了一个问题表格,因为我想自己看看事件块。但是,这个过程对我来说是出乎意料的。我的描述如下:
我正在使用以下代码记录onFormSubmit事件:
function testFormSubmission(e) {
var lock=LockService.getUserLock();
try{
if(lock.tryLock(30000)) {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('LogSheet');
var tA=[Utilities.formatDate(new Date(), Session.getScriptTimeZone(),"d/M/yyyy HH:mm:ss")];
tA=tA.concat(e.values);
tA.splice(tA.length-1,1,e.triggerUid,e.range.rowStart,e.range.columnEnd,JSON.stringify(e.values));
sh.appendRow(tA);
lock.releaseLock();
}
}
catch (e){throw("Couldn\'t get lock for 30 seconds");return;};
}
Run Code Online (Sandbox Code Playgroud)
我的电子表格下面有两张图片:
e.values实际上只有两列,一列是日期,一列是问题的答案,即“绿色”或“蓝色”。空白列来自以下事实:我从三个问题开始并收集电子邮件,但为了简化起见决定删除其中两个,因为我是自己生成提交的。
无论如何,在columnC中没有绿色或蓝色的响应都不应存在。 J列很简单JSON.stringify(e.values),似乎表明e中的值不正确...我认为吗?是/否
这是电子表格的图像。(其中一些)
这是表格回复1表格:
这是LogSheet:
所以我的问题很简单,日志表中多余的附加行是从哪里来的?
我更新了标题问题,因为我认为我不会收到多次提交,否则我希望在Form Responses 1工作表中有多行。
对于您的信息,LogSheet中的columnH是rowStart,因此很容易找出Form Response 1中的哪一行相关。
我想问问您是否知道一种可以与Google Apps脚本共享驱动器中文件夹的方法,但不会收到编辑者的电子邮件。我曾尝试将以下选项放入我的程序中,但徒劳无功:“ folderName.permission.EDIT”
中的名称使用单标记和双quotation标记有什么区别吗?Associative arraysPHP
例如:
$age = array("彼得"=>"35", "本"=>"37", "乔"=>"43");
$age = array('彼得'=>'35', '本'=>'37', '乔'=>'43');
我在运行脚本时遇到了这个问题。前一天如果对我来说工作正常。我确实清除了 chrome 浏览器的所有缓存,我也尝试了另一台笔记本电脑,但问题是这样。请帮我解决这个问题。
我正在运行的代码是:
function onOpen(e) {
var menu = SpreadsheetApp.getUi().createMenu('Reporting Tools');
menu.addItem('Create Unit Scorecards', 'HSIPScorecard2021CountryScripts.createInputSheets');
menu.addItem('Notify Unit H&S Heads', 'HSIPScorecard2021CountryScripts.sendNotifications');
menu.addItem('Consolidate Unit Data', 'HSIPScorecard2021CountryScripts.Consolidate');
menu.addToUi();
}
Run Code Online (Sandbox Code Playgroud) 我只想复制和粘贴值和格式,而不是公式。
EG(A1是动态文本):
A1 =“测试”
A2 = = A1
我想使用一个脚本,该脚本在激活时将A2格式和文本(在这种情况下,将“ test”复制而不是“ = a1”)复制到A3。
我尝试使用“ formatOnly:true,contentsOnly:true”-但它会不断复制公式。
function Threebrow() {
var sheet2 = SpreadsheetApp.getActive().getSheetByName('c');
sheet2.getRange("a2").copyTo(sheet2.getRange(sheet2.getLastRow()+1,1,1,7), {formatOnly:true , contentsOnly:true});
}
Run Code Online (Sandbox Code Playgroud) 我正在构建一个搜索工具,通过它可以使用谷歌脚本将谷歌范围转换为图像。我尝试将该数据范围粘贴到谷歌幻灯片,然后从那里获得缩略图及其网址。我正在搜索任何其他工具,这些工具可以直接为我提供 Google 表格所选范围的图像网址。
谢谢
如何从 Google 表格创建 Markdown 表格?
markdown google-sheets google-apps-script github-flavored-markdown
arrays ×1
autocomplete ×1
code-editor ×1
google-forms ×1
javascript ×1
jsdoc3 ×1
markdown ×1
php ×1
variables ×1