Как заставить мой скрипт сохранять в PDF только первый лист с определенным диапазоном. в настоящее время сохранить весь файл - PullRequest
0 голосов
/ 09 января 2020

Этот код я сейчас использую, только проблема в том, что он хранит всю книгу ...

function PDFP()
{

var file = null;

var files = DriveApp.getFilesByName(SpreadsheetApp.getActiveSpreadsheet().getName());

if ( files.hasNext() )

file = files.next();

var newFile = DriveApp.createFile(file.getAs('application/pdf'));

var values = SpreadsheetApp.getActiveSheet().getRange("F6").getValues();

var values2 = SpreadsheetApp.getActiveSheet().getRange("D11").getValues();

  Logger.log(values["F6"]);

  Logger.log(values2["D11"]);

newFile.setName("No." + " " + values + " " + values2);

   var files = DriveApp.getRootFolder().getFiles();

    while (files.hasNext()) {
        var file = files.next();

        var destination = DriveApp.getFolderById("1MZVNcUnoNs63_rDhCyydH8jZGLr5JjZO");

        destination.addFile(file);

        var pull = DriveApp.getRootFolder();

        pull.removeFile(file);   

      Browser.msgBox("Tu documento ha sido guardado con éxito." , Browser.Buttons.OK);
}

};

1 Ответ

1 голос
/ 09 января 2020

Ответ:

С помощью API-интерфейса диска экспортируемые таблицы содержат все листов в таблице. Если вы хотите sh использовать DriveApp для экспорта диапазона, вы должны сначала скопировать диапазон в новую электронную таблицу и экспортировать ее.

Соответствующие методы:

Вы можете использовать create() метод SpreadsheetApp для создания нового файла, а затем getRange() и copyTo() методы для их выделения для экспорта. Отсюда вы можете использовать соответствующие DriveApp методы для создания вашего PDF.

Пример кода:

// Create temporary Sheet and copy the range from your current Sheet:
var tempSheet = SpreadsheetApp.create('Sheet para exportar');
var rangeToExport = SpreadsheetApp.getActiveSheet().getRange("YOUR-RANGE");

// Copy previously copied range to new Sheet:
var numRows = rangeToExport.getNumRows();
var numColumns = rangeToExport.getNumColumns();
rangeToExport.copyTo(tempSheet.getRange(1, 1, numRows, numColumns))

// Create and name the new PDF:
var values = SpreadsheetApp.getActiveSheet().getRange("F6").getValues();
var values2 = SpreadsheetApp.getActiveSheet().getRange("D11").getValues();
var newFile = DriveApp.createFile(tempSheet.getAs('application/pdf'));
newFile.setName("No." + " " + values + " " + values2);

// Add the new PDF to Drive and delete the temporaryt Sheet:
DriveApp.getFolderById("YOUR-DRIVE-FOLDER-ID").addFile(newFile);
DriveApp.getRootFolder().removeFile(tempSheet);

Надеюсь, это полезно для вас!

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...