google-apps-script - 将工作表导出为 PDF 突然停止工作
问题描述
我已经使用此代码将近一年了,但突然停止工作目前,不是创建 PDF 文件,而是创建 HTML 文件
function creatPDF() {
SpreadsheetApp.flush();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var Consecutivo = sheet.getRange(2,20).getValue();
var Proveedor = sheet.getRange(14,5).getValue();
var CenCos = sheet.getRange(7,7).getValue();
var TipoOC = sheet.getRange(2,10).getValue();
var Cuenta = sheet.getRange(9,7).getValue();
var PDF_FILE_NAME = Consecutivo + ' - ' + Proveedor;
var spreadsheet = SpreadsheetApp.getActive();
var spreadsheetId = spreadsheet.getId();;
var TargetFolder = DriveApp.getFolderById(DriveApp.getFileById(spreadsheetId).getParents().next().getId());
var url = ss.getUrl();
url = url.replace(/edit$/, '');
var url_ext = 'export?exportFormat=pdf&format=pdf' +
'&size=a4' +
'&portrait=true' +
'&fitw=true' +
'&top_margin=0.30' +
'&bottom_margin=0.3' +
'&left_margin=0.85' +
'&right_margin=0.85' +
'&sheetnames=false&printtitle=false&pagenumbers=false' +
'&gridlines=false' +
'&fzr=false' +
'&gid=' + sheet.getSheetId();
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url + url_ext, { headers: { 'Authorization': 'Bearer ' + token }});
newFile = DriveApp.createFile(response.getBlob()).setName(PDF_FILE_NAME);
var newFileSourceFolder = DriveApp.getRootFolder()
TargetFolder.addFile(newFile);
newFileSourceFolder.removeFile(newFile)
SpreadsheetApp.getUi().alert('Nuevo PDF creado para la orden ' + Consecutivo + '.')
}
}
它应该只在工作表所在的同一文件夹中创建一个 PDF 文件。
解决方案
替换这个
url = url.replace(/edit$/, '')
有了这个
url = url.substring(url.indexOf("edit?"), -100000) //url.replace(/edit$/,'');
推荐阅读
- python - Is there way to invert only specific pixels with Pillow?
- apache-spark - Nested json and dataframe - retrieving data from array
- git - Git fetch 和 git pull 没有从远程仓库复制文件
- javascript - Passing props back everytime a from is submitted in React
- python - 分离重复列值
- babylonjs - Cannot find module 'babylonjs'
- node.js - 如何防止老练的攻击者知道您的应用在生产环境中由 Express.js 提供支持?
- javascript - How to send a file in array of object to express server?
- c# - 如何将 ADFS 用户添加到 Identity 中的“AspNetUsers”?
- javascript - 在Angular中先前的响应之后执行一个函数