我正在使用Google表格为我正在做的事情制作一堆数字数据.
有没有办法将子集导出到文本文件?
实际上,我的目标是导出一个文件,我可以直接包含在另一个项目的构建中.
那么有没有办法生成一个文本文件供下载?
我想使用urlfetch来填充包含页面数据的电子表格,但我尝试使用的URL会返回错误作为无效参数.我认为问题是我在URL中使用了被误解的字符(例如引号和括号).
我尝试使用下面的命令对URL进行编码,但我假设我对某些字符进行了双重编码,这导致了问题.
var encodedURL = encodeURIComponent(pageURL)
Run Code Online (Sandbox Code Playgroud) 可以getRange用来命名范围而不是区域吗?
当我似乎这样做时,它说参数必须是一个范围.例如,
代替:
getRange("A4:E7");
Run Code Online (Sandbox Code Playgroud)
A4:E7已经将区域设置为sheet1中名为"Names"的命名区域.
你能否使用:
var tableRange = SpreadsheetApp.getActiveSpreadsheet();.getRangeByName("Names");
getRange(tableRange);
Run Code Online (Sandbox Code Playgroud)
或者还有其他方法可以做到这一点.完整的代码是:
function onEdit(event){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var editedCell = ss.getActiveCell();
var columnToSortBy = 1;
var tableRange = ss.getRangeByName("Names");
if(editedCell.getColumn() == columnToSortBy){
var range = ss.getRange(tableRange);
range.sort( { column : columnToSortBy } );
}
}
Run Code Online (Sandbox Code Playgroud) 我试图从时间格式化Cell(hh:mm:ss)得到小时值,值可以更大24:00:00,例如20000:00:00应该给20000:
表:

如果你读了E1的价值:
var total = sheet.getRange("E1").getValue();
Logger.log(total);
Run Code Online (Sandbox Code Playgroud)
结果是:
周四4月12日07:09:21 GMT + 00:09 1902
现在我尝试将其转换为Date对象并获取它的Unix时间戳:
var date = new Date(total);
var milsec = date.getTime();
Logger.log(Utilities.formatString("%11.6f",milsec));
var hours = milsec / 1000 / 60 / 60;
Logger.log(hours)
Run Code Online (Sandbox Code Playgroud)
1374127872020.000000
381702.1866722222
问题是如何获得20000的正确值?
您提供的"修复"(test_onformsubmit)代码,每次电子表格中有新数据时,我都必须手动运行它.我希望它在提交表单时自动将pdf发送到电子邮件.有办法吗?因为手动方式运行代码完全像它应该的那样,但我希望这是一个自动事件,所以我不需要做任何事情.
我试图在运行时找到最好的脚本来完成一项任务.我有一个相当大的电子表格,我需要检查某些已知列中的值,并根据匹配情况返回该行.理想情况下,我想要一个包含返回行的新电子表格.
我已经通过ID打开了电子表格,并且我已经获得了工作表和范围,但不确定搜索特定列的最有效方法,并且不仅仅抓取该值而是整个行.
谢谢,
I'm getting a very weird undefined error:
function login(name,pass) {
var blob = Utilities.newBlob(pass);
var passwordencode = Utilities.base64Encode(blob.getBytes());
var ss = SpreadsheetApp.openById("");
var sheet = ss.getActiveSheet();
var data = sheet.getDataRange().getValues();
var i=1;
while (name != data[i][0]){
Logger.log(data[i][0]);
i++;
}
if (passwordencode == data[i][1]){
UserProperties.setProperties({
"name" :name,
"pass" : passwordencode
});
Logger.log("You are logged in");
}
else if (passwordencode != data[i][1]) {
Logger.log("You are not logged in");
UserProperties.setProperties({
"name" : "",
"pass" : ""
});
}
}
Run Code Online (Sandbox Code Playgroud)
using googlescript. The one …
Google电子表格没有像Excel中那样"插入剪切单元格"的功能.
假设我选择A4到B5,按Ctrl + X.
然后我将选择移动到A2.
现在我想"插入切割单元格",可能是插入空白单元格并将虚线范围移动到A2.

有没有办法在自己的菜单上使用JavaScript ?
例如.
function insertCutOrCopiedCells(){
var SS = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SS.getActiveSheet();
var cell = sheet.getActiveCell();
// How do you get the cells being cut/copied? (ie. A4 to B5)
// We can then insert empty cells (2 cols 2 rows) at the selection (A2)
// and move the cut cells (A4 to B5) there
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用绑定到表单的脚本从谷歌表单收集响应详细信息,使用onFormSubmit()触发器.
大多数情况下收到的细节没有错误,但偶尔会出现错误.收到触发器但没有数据传递给脚本.响应由Google表单控制台接收,但不会转发到脚本.
接收数据的代码:
function onFormSubmit(e)
{
Logger.log("A response has been received!");
Logger.log(e);
var resp = e.response.getItemResponses(); //capturing trigger event output
var form = e.source;
......
Run Code Online (Sandbox Code Playgroud)
出现错误时的执行记录:
[16-09-27 07:29:15:073 PDT] Starting execution
[16-09-27 07:29:15:096 PDT] Logger.log([A response has been received!, []]) [0 seconds]
[16-09-27 07:29:15:097 PDT] Logger.log([{authMode=FULL, triggerUid=xxxxxxx41}, []]) [0 seconds]
[16-09-27 07:29:15:099 PDT] Execution failed: TypeError: Cannot call method "getItemResponses" of undefined. (line 18, file "Code") [0.002 seconds total runtime]
Run Code Online (Sandbox Code Playgroud)
到目前为止,我通过复制表单并重新设置所有权限来解决它.但是,我想要一个不再让我这样做的解决方案.在我的第10次重复现在:(
当我成功收到回复时,e也有一个回复键.