Можно ли настроить параметры диаграммы через API Google Sheets? - PullRequest
0 голосов
/ 20 февраля 2020

Я могу обновить «составную диаграмму области», однако не могу понять, как установить «Обрабатывать метки как текст» на горизонтальной оси. (Это делается в пользовательском интерфейсе, нажав «Редактировать диаграмму -> Настроить -> Горизонтальная ось -> Обрабатывать метки как текст»)

Кто-нибудь знает способ сделать это с помощью API Sheets? Есть ли другой способ?

Спасибо !!

1 Ответ

2 голосов
/ 20 февраля 2020
  • Вы хотите установить Treat labels as text диаграммы в электронной таблице Google.
  • Вы хотите добиться этого с помощью API Sheets.

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

Проблема и обходной путь:

К сожалению, я не смог найти свойство для установки Treat labels as text в теле запроса. И я готовлю 2 паттерна проверенного Treat labels as text и непроверенного Treat labels as text, и когда оба паттерна сравниваются с объектом диаграммы, полученным с помощью метода spreadsheets.get, я не могу найти различий для обоих. Таким образом, я подумал, что на текущем этапе нет способа установить Treat labels as text в Sheets API.

Так что в качестве одного из нескольких обходных путей здесь я хотел бы предложить использовать веб-приложения в качестве API. Когда используется Google Apps Script, можно установить Treat labels as text. Этот обходной путь использует это.

Использование:

Использование этого обходного пути следующее.

1. Создайте новый проект скрипта Google Apps.

Пример скрипта веб-приложений - это скрипт Google Apps. Поэтому, пожалуйста, создайте проект Google Apps Script.

Если вы хотите создать его напрямую, перейдите к https://script.new/. В этом случае, если вы не вошли в Google, откроется экран входа. Пожалуйста, войдите в Google. При этом открывается редактор сценариев Google Apps Script.

2. Скопируйте и вставьте скрипт.

Пожалуйста, скопируйте и вставьте следующий скрипт.

function doGet(e) {
  var spreadsheetId = e.parameter.spreadsheetId;
  var chartId = e.parameter.chartId;
  var treatLabelsAsText = e.parameter.treatLabelsAsText;
  var ss = SpreadsheetApp.openById(spreadsheetId);
  var sheets = ss.getSheets();
  var done = false;
  for (var i = 0; i < sheets.length; i++) {
    var charts = sheets[i].getCharts();
    if (charts.length > 0) {
      for (var j = 0; j < charts.length; j++) {
        if (charts[j].getChartId() == chartId) {
          var modifiedChart = charts[j].modify().setOption('treatLabelsAsText', treatLabelsAsText).build();
          sheets[i].updateChart(modifiedChart);
          done = true;
          break;
        }
      }
      if (done) break;
    }
  }
  return ContentService.createTextOutput("Done.");
}

3. Развертывание веб-приложений.

  1. В редакторе сценариев откройте диалоговое окно с помощью «Publi sh» -> «Развернуть как веб-приложение».
  2. Выберите «Я « для » Запустите приложение как: «.
  3. Выберите « Любой, даже анонимный » для « У кого есть доступ к приложению: «.
    • Этот параметр предназначен для тестирования этого обходного пути.
    • Если для параметра «Только я» установлено значение «У кого есть доступ к приложению:», необходимо использовать маркер доступа.
  4. Нажмите кнопку «Развернуть» как новую «Версия проекта».
  5. Автоматически откройте диалоговое окно «Требуется авторизация».
    1. Нажмите «Просмотреть разрешения».
    2. Выберите собственную учетную запись.
    3. Нажмите «Дополнительно» в разделе «Это приложение не подтверждено».
    4. Нажмите " Go to ### имя проекта ### (небезопасно) "
    5. Нажмите кнопку" Разрешить ".
  6. Нажмите" ОК ".
  7. Скопируйте URL-адрес веб-приложений. Это как https://script.google.com/macros/s/###/exec.
    • Когда вы изменили скрипт Google Apps, пожалуйста, повторно разверните его как новую версию. Этим измененный сценарий отражается в веб-приложениях. Пожалуйста, будьте внимательны.

4. Пример curl.

Чтобы проверить доступ к веб-приложениям, используйте следующую команду curl.

curl -GL \
  -d "spreadsheetId=###" \
  -d "chartId=###" \
  -d "treatLabelsAsText=true" \
  "https://script.google.com/macros/s/###/exec"

Если вы развернули веб-приложения как «Только я» для «У кого есть Доступ к приложению: ", пожалуйста, используйте свой токен доступа следующим образом.

curl -GL \
  -H "Authorization: Bearer ###" \
  -d "spreadsheetId=###" \
  -d "chartId=###" \
  -d "treatLabelsAsText=true" \
  "https://script.google.com/macros/s/###/exec"
  • Пожалуйста, установите URL-адрес веб-приложений, полученный выше, а также идентификатор электронной таблицы, идентификатор диаграммы и значение treatLabelsAsText.
  • При выполнении вышеуказанной команды curl проверяется «Обрабатывать метки как текст» для определенной диаграммы c в электронной таблице. И вы можете увидеть Done. на консоли.

Примечание:

  • Когда вы изменили скрипт веб-приложений, пожалуйста, повторно разверните веб-приложения как новые версия. Таким образом, последний скрипт отражается на веб-приложениях. Пожалуйста, будьте осторожны с этим.
  • Если вы хотите использовать токен доступа, укажите в поле доступа https://www.googleapis.com/auth/drive.readonly и / или https://www.googleapis.com/auth/drive.

Ссылки:

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

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