Javascript 正在将Google Apps脚本的输出检索到本地计算机
我正在运行一个GoogleApps脚本(基于Gmail数据),我想将一些数据从Javascript保存到本地计算机。如何在此处保存/下载一些用Javascript计算的数据: 到本地文件 我所发现的是:Javascript 正在将Google Apps脚本的输出检索到本地计算机,javascript,google-apps-script,gmail,gmail-api,Javascript,Google Apps Script,Gmail,Gmail Api,我正在运行一个GoogleApps脚本(基于Gmail数据),我想将一些数据从Javascript保存到本地计算机。如何在此处保存/下载一些用Javascript计算的数据: 到本地文件 我所发现的是: var addresses = []; var threads = GmailApp.search("label:mylabel", 0, 10); for (var i = 0; i < threads.length; i++) { var messages = threads[i
var addresses = [];
var threads = GmailApp.search("label:mylabel", 0, 10);
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
addresses.push(messages[j].getFrom());
}
}
Logger.log(addresses);
var地址=[];
var threads=GmailApp.search(“标签:mylabel”,0,10);
对于(var i=0;i
但是,
Logger.log(…)
对于将此数据保存到本地计算机不是很有用。谷歌应用程序脚本无法将任何内容直接保存到您的计算机。但它可以将数据保存到谷歌电子表格中,然后你可以下载
function getText(obj)
{
var presentationId=getPresentationId();
var data=Slides.Presentations.Pages.get(obj.presId, obj.pageId);
myUtilities.saveFile(data)
for (var i=0;i<data.pageElements.length;i++)
{
if(data.pageElements[i].shape && data.pageElements[i].shape.text && data.pageElements[i].shape.text.textElements.length)
{
for(var j=0;j<data.pageElements[i].shape.text.textElements.length;j++)
{
if(data.pageElements[i].shape.text.textElements[j].textRun)
{
var text=data.pageElements[i].shape.text.textElements[j].textRun.content;
}
}
}
}
return text;
}
您可以使用现有的电子表格,也可以创建新的电子表格。因此,逻辑从以下两个方面开始
var ss = SpreadsheetApp.create("Output"); // new spreadsheet
或
无论哪种方式,假设您希望将地址列表存储在此电子表格第一张工作表的A列中。那就是
var sheet = ss.getSheets()[0];
var range = sheet.getRange(1, 1, addresses.length, 1);
var data = addresses.map(function(x) {return [x];});
range.setValues(data);
使用
数据的中间步骤是将一维数组地址
转换为二维数组,[[addr1],[addr2],…]
-这是在谷歌表单中表示值的方式。我建议将此作为另一个答案
如果我从GoogleApps脚本和GoogleDrive获得数据,我认为Web应用可以用于这种情况。例如,它以触发器run=ok
的形式从Google检索数据,可以使用以下示例脚本
脚本:
您可以在本地PC上使用curl检索结果的数据,如下所示。该URL是Web应用程序URL
curl -L https://script.google.com/macros/s/#####/exec?run=ok
结果:
昨晚我在调试一个程序时遇到了一些问题,我希望能够在我的计算机上的新UltraEdit中查看json,所以这就是我如何将数据从我的google脚本获取到我的计算机的方法
function getText(obj)
{
var presentationId=getPresentationId();
var data=Slides.Presentations.Pages.get(obj.presId, obj.pageId);
myUtilities.saveFile(data)
for (var i=0;i<data.pageElements.length;i++)
{
if(data.pageElements[i].shape && data.pageElements[i].shape.text && data.pageElements[i].shape.text.textElements.length)
{
for(var j=0;j<data.pageElements[i].shape.text.textElements.length;j++)
{
if(data.pageElements[i].shape.text.textElements[j].textRun)
{
var text=data.pageElements[i].shape.text.textElements[j].textRun.content;
}
}
}
}
return text;
}
函数getText(obj)
{
var presentationId=getPresentationId();
var data=Slides.Presentations.Pages.get(obj.presId,obj.pageId);
myUtilities.saveFile(数据)
对于(var i=0;iThanks@Tanaike!我通常在https://script.google.com/d/...8DSQD-PVKj/edit
,如何获取curl
的URL?另外,名称doGet(e)
是必需的还是我可以使用函数myFunction(e){}
?@Basj您可以检索https://script.google.com/macros/s/###/exec?run=ok
在GAS上使用ScriptApp.getService().getUrl()
。URL是恒定的。因此,您可以通过一次检索来继续使用它。在Web应用程序中,doGet(e)的功能
必须使用。如果你想使用其他函数,你可以使用函数doGet(e){return myFunction(e)}
。我误解了你的评论,很抱歉。谢谢你的回答,它帮助了我:)相关:。再次感谢@Tanaike,现在是结果:。
sample data
function getText(obj)
{
var presentationId=getPresentationId();
var data=Slides.Presentations.Pages.get(obj.presId, obj.pageId);
myUtilities.saveFile(data)
for (var i=0;i<data.pageElements.length;i++)
{
if(data.pageElements[i].shape && data.pageElements[i].shape.text && data.pageElements[i].shape.text.textElements.length)
{
for(var j=0;j<data.pageElements[i].shape.text.textElements.length;j++)
{
if(data.pageElements[i].shape.text.textElements[j].textRun)
{
var text=data.pageElements[i].shape.text.textElements[j].textRun.content;
}
}
}
}
return text;
}