Сохраните один лист в Google Таблицах в формате PDF с помощью скрипта

#google-apps-script #google-sheets

#google-приложения-скрипт #google-sheets

Вопрос:

Я хотел бы иметь возможность сохранять только активный лист в формате PDF при нажатии кнопки сохранить pdf. В настоящее время мой код сохраняет все листы. Как мне отредактировать этот код?

 function onOpen() {
  var submenu = [{name:"Save PDF", functionName:"saveAsPDF"}];
  SpreadsheetApp.getActiveSpreadsheet().addMenu('Save as PDF', submenu);  
}

function saveAsPDF() {
  const folderName = `social`;
  const fileNamePrefix = SpreadsheetApp.getActiveSheet().getRange('a1').getValue();
  const PhasePrefix = SpreadsheetApp.getActiveSheet().getRange('a2').getValue();
  
  var actualSheetName = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();


   DriveApp.getFoldersByName(folderName)
    .next()
    .createFile(SpreadsheetApp.getActiveSpreadsheet()
                  .getBlob()
                  .getAs(`application/pdf`)
                  .setName(`${fileNamePrefix} - ${PhasePrefix} - ${Utilities.formatDate(new Date(), `GMT-8`, `yyyy-MM-dd`)}`));  

  var ui = SpreadsheetApp.getUi()
  ui.alert('New PDF file created in '   folderName )
}  

Ответ №1:

во-первых, будьте осторожны, поскольку опция сохранения в формате pdf исчезнет в декабре. Я не уверен, повлияет ли это на функцию скрипта, но вы получите предупреждение при попытке сделать это вручную. стоит проверить … (не проверено)

сохранить как pdf переходит в папку и сохраняет файл. если вы уже находитесь в файле, вы просто хотите сохранить один лист, вам, вероятно, не нужно идти и захватывать весь файл.

Я собирался написать это, но я думаю, что эта ссылка сделает то, что вы хотите лучше всего. https://xfanatical.com/blog/print-google-sheet-as-pdf-using-apps-script /

Прокрутите вниз до раздела исходного кода. Вы ищете эту функцию ‘exportCurrentSheetAsPDF’

 function exportCurrentSheetAsPDF() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  var currentSheet = SpreadsheetApp.getActiveSheet()
  
  var blob = _getAsBlob(spreadsheet.getUrl(), currentSheet)
  _exportBlob(blob, currentSheet.getName(), spreadsheet)
}
  

Это простая выдержка. Я призываю вас перейти, чтобы дать им клики, и там есть много других полезных вещей. Я думаю, что это, вероятно, больше, чем вы хотели, но, возможно, вы не знали, что хотите…

Комментарии:

1. Здравствуйте, где вы прочитали, что «сохранить как pdf» устарело?

2. Я оговорился. Я имел в виду сохранить на Google Диске (в формате PDF). извините за путаницу.