首页 > 解决方案 > 将工作表导出为 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 文件。

标签: google-apps-scriptgoogle-sheetsexport-to-pdf

解决方案


替换这个

url = url.replace(/edit$/, '')

有了这个

url = url.substring(url.indexOf("edit?"), -100000) //url.replace(/edit$/,'');

推荐阅读