Как создать диаграмму в Google Script и сохранить ее в Google Drive в качестве изображения - PullRequest
1 голос
/ 22 марта 2020

Следующий код может сохранить изображение на листе, но я не могу понять, как сохранить его на Google Диске. Вот лист Google, который вы можете скопировать: https://docs.google.com/spreadsheets/d/1AkJqpwmq0-GTveneyuQugPL900LpTS2MDpQjHz_p5lk/edit?usp=sharing

function testchartbuild() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('Sheet1');
  var chart = sheet.newChart()
       .setChartType(Charts.ChartType.LINE)
       .addRange(sheet.getRange('A1:A12'))
       .setPosition(5, 5, 0, 0)
       .build();
  
  // create an image from that EmbeddedChart
  sheet.insertImage(chart.getBlob(),6,1);  // this works
  
  // the file created is only 4 bytes long
  var newFile = createGoogleDriveFile(chart.getBlob());
}


function createGoogleDriveFile(image) {
  var newFile;
  
  newFile = DriveApp.createFile('test.png',image,'image/png');//Create a new file in the root folder
  
  return newFile;
};

1 Ответ

2 голосов
/ 23 марта 2020
  • Вы хотите сохранить диаграмму на Google Диске.
  • Вы хотите добиться этого, изменив свой скрипт.

Если мое понимание верно, как насчет этот ответ? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точки модификации:

  • В вашем скрипте измените скрипт функции createGoogleDriveFile.
    • При методе createFile(blob) аргументом является blob.
    • Если вы хотите указать имя файла, используйте setName().
    • В этом случае mimeType уже передан BLOB-объекту.

Модифицированный скрипт:

Когда ваш скрипт модифицирован, пожалуйста, измените его следующим образом.

С :
newFile = DriveApp.createFile('test.png',image,'image/png');
Кому:
newFile = DriveApp.createFile(image.setName('test.png'));

Ссылки:

Если я неправильно понял ваш вопрос, а это не то направление, в котором вы хотите, прошу прощения.

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