我编写了一个脚本,该脚本获取带有一些参数的用户列表(组,数据转储类型),并作为服务工作。
它使用contentService将数据作为CSV返回。
一切正常,但在Chrome(Mac OS)或Firefox(Mac OS)中,它总是保存文件而不是在屏幕上显示...(文件名:echo.csv)
使用Safari我在屏幕上获取数据。
我的问题是:我可以在不使用forced downloadAsFile()方法的情况下更改默认名称吗?
该脚本用于向我们在另一台服务器上开发的PHP应用程序提供内容。 (我并没有真正参与开发的这一部分,我只是做了Google Apps脚本部分。: - )
这是脚本:
function doGet(e) {
if(e.parameter.log!='adminUser'){return ContentService.createTextOutput("erreur de logging, vous n'êtes pas autorisé à voir ce résultat, contactez Serge @ insas").setMimeType(ContentService.MimeType.TEXT)};
var cat = e.parameter.cat;
var type = e.parameter.type
Logger.log(cat)
var ssGroup = SpreadsheetApp.openById('0AnZ5_ShBzIxxxxxxxxx2MkZPNVViNXc');
var ssUser = SpreadsheetApp.openById('0AnZ5_ShBzI6pdGxxxxxxxxxxxxxyNGoxRmc');
var shU = ssUser.getSheetByName('Feuille de travail principale')
var shG = ssGroup.getSheetByName('Horizontal')
var datagroup = shG.getDataRange().getValues();
var dataUser = shU.getDataRange().getValues();
if(type==1){
var outString = '';
for(var n=0 ; n<dataUser.length ; ++n){
if(dataUser[n][11].toString().indexOf(cat)==-1){ continue };
var dataRow = dataUser[n][3]+','+dataUser[n][2]+','+dataUser[n][4]+','+dataUser[n][11]+';\n';
outString+=dataRow
}
Logger.log('part1'+outString);
var result = ContentService.createTextOutput(outString).setMimeType(ContentService.MimeType.CSV);
return result;
}else{
var outString = '';
for(var n=0 ; n<datagroup.length ; ++n){
if(datagroup[n][0].toString().indexOf(cat)==-1){ continue };
var dataRow = datagroup[n][0];
for(var c=2;c<datagroup[n].length;++c){
if(datagroup[n][c]!=''){
dataRow+=(','+datagroup[n][c])
}else{
dataRow+=';\n';
break;
}
}
outString+=dataRow
}
Logger.log('part2'+outString);
var result = ContentService.createTextOutput(outString).setMimeType(ContentService.MimeType.CSV);
return result;
}
}
答案 0 :(得分:1)
如果你想在浏览器中查看CSV,你不需要诚实......只要说它是TEXT。
function doGet(e) {
// &type=TEXT to view as text
var type = (e.parameter['type'] && e.parameter['type'] == "TEXT") ? "TEXT" : "CSV";
var sheet = SpreadsheetApp.openById(sheetId).getSheets()[0];
var data = sheet.getDataRange().getValues();
var outString = '';
for(var row=0 ; row<data.length ; ++row){
outString += data[row].join(',') + ';\n';
}
Logger.log(outString);
var result = ContentService
.createTextOutput(outString)
.setMimeType( ContentService.MimeType[type] );
return result;
}