使用GAS将谷歌电子表格转换为PDF-为6+;几个月后停止工作
正如标题所说,我有一个脚本,它完美地工作了6个多月,然后就停止了将文件转换为PDF。我展示的最后一个工作文件是2020年8月6日,之后的下一个工作文件是2020年8月31日,它以text/HTML文件的形式出现,此后每个人都是text/HTML文件 这是我正在做的一个例子。我的实际代码创建了一个新的电子表格,保存了PDF文件,然后删除了电子表格,因为当我创建这个电子表格时,我读到了这是必要的。不确定它是否仍然是一样的,显然有些东西改变了。本例不保存文件,但显示blob类型,它仍然显示为text/HTML 代码.gs使用GAS将谷歌电子表格转换为PDF-为6+;几个月后停止工作,pdf,google-apps-script,google-sheets,urlfetch,Pdf,Google Apps Script,Google Sheets,Urlfetch,正如标题所说,我有一个脚本,它完美地工作了6个多月,然后就停止了将文件转换为PDF。我展示的最后一个工作文件是2020年8月6日,之后的下一个工作文件是2020年8月31日,它以text/HTML文件的形式出现,此后每个人都是text/HTML文件 这是我正在做的一个例子。我的实际代码创建了一个新的电子表格,保存了PDF文件,然后删除了电子表格,因为当我创建这个电子表格时,我读到了这是必要的。不确定它是否仍然是一样的,显然有些东西改变了。本例不保存文件,但显示blob类型,它仍然显示为text/
function testPDF(){
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('M2');
var url = ss.getUrl();
var sheetId = sheet.getSheetId();
//remove the trailing 'edit' from the url
url = url.replace(/edit$/, '');
//additional parameters for exporting the sheet as a pdf
var url_ext = 'export?exportFormat=pdf&format=pdf' + //export as pdf
//below parameters are optional...
'&portrait=false' + //orientation, false for landscape
'&scale=4' + //4 = fit to page
'&gid=' + sheetId; //the sheet's Id
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url + url_ext, {
headers: {
'Authorization': 'Bearer ' + token
}
});
var theBlob = response.getBlob().setName("M2");
Logger.log(theBlob.getContentType());
}
那么,是什么在8月份发生了变化,使这项工作停止了呢?我在这里找到了答案:
显然
//remove the trailing 'edit' from the url
url = url.replace(/edit$/, '');
编辑后不再删除所有内容,因此我按照@jesse fox和@bcolbert的建议将其更改为:
url = url.replace(/edit.*$/,'');
而且它工作得很好