Существуют ли определенные Google Slides AppScript, которые задокументированы, но не поддерживаются? - PullRequest
1 голос
/ 13 марта 2019

Я пытаюсь манипулировать таблицей в Google Slides, но, похоже, есть документированные операции, которые выдают ошибки в AppScript.

https://developers.google.com/apps-script/reference/slides/table

Закомментированные строки выдают следующие ошибки:

Обновление размера этого типа элемента страницы не поддерживается.

var table = (slides[page])
.insertTable(rows, columns)
.setTop (0)
.setLeft(0)
//.setWidth(presentation.getPageWidth());
//.setHeight(presentation.getPageHeight());

1 Ответ

1 голос
/ 14 марта 2019

Как насчет этого ответа?Я также подтвердил ту же ситуацию с вами.Я думаю, что это может быть ошибкой.Потому что, когда используется Slides API, можно создать таблицу, которая регулирует ширину и высоту.Таким образом, в текущем обходном пути, когда размер таблицы необходимо настроить при создании таблицы, я создаю таблицу с помощью Slides API.Пример сценария выглядит следующим образом.

Чтобы использовать пример сценария, прежде чем запускать сценарий, включите Slides API в консоли Advanced Services и консоли API следующим образом.

Включить Slides APIv1 в Advanced Google Services

  • В редакторе сценариев
    • Ресурсы -> Расширенные службы Google
    • Включить Google Slides API v1

Включение API-интерфейса Slides на консоли API

  • В редакторе сценариев
    • Ресурсы -> Проект Cloud Platform
    • Просмотр консоли API
    • На начальном этапе нажмите «Исследовать и включить API».
    • С левой стороны нажмите «Библиотека».
    • В поле «Поиск API и служб» введите «Слайды».И нажмите «Google Slides API».
    • Нажмите кнопку «Включить».
    • Если API уже включен, не выключайте его.

Пример сценария 1:

Когда ваш сценарий изменяется с помощью Slides API, он выглядит следующим образом.

var presentation = SlidesApp.getActivePresentation();
var slides = presentation.getSlides();
var resource = {"requests":[{"createTable": {
  "rows": 2,
  "columns": 3,
  "elementProperties": {
    "size": {
      "width": {"unit": "PT", "magnitude": presentation.getPageWidth()},
      "height": {"unit": "PT", "magnitude": presentation.getPageHeight()},
    },
    "pageObjectId": slides[0].getObjectId()},
  }
}]};
Slides.Presentations.batchUpdate(resource, presentation.getId());

Пример сценария 2:

Если вы хотитеизменить размер существующей таблицы можно с помощью следующего сценария.

var presentation = SlidesApp.getActivePresentation();
var slides = presentation.getSlides();
var table = slides[0].getTables()[0];
var tableObjectId = table.getObjectId();
var resource = {"requests": [
  {"updateTableColumnProperties": {
    "objectId": tableObjectId,
    "tableColumnProperties": {"columnWidth": {"unit": "PT", "magnitude": presentation.getPageWidth() / table.getNumColumns()}}, "fields": "*"}
  },
  {"updateTableRowProperties": {
    "objectId": tableObjectId,
    "tableRowProperties": {"minRowHeight":{"unit": "PT", "magnitude": presentation.getPageHeight() / table.getNumRows()}},"fields":"*"}
  }
]};
Slides.Presentations.batchUpdate(resource, presentation.getId());

Ссылки:

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

...