Нужны подсказки: измените существующие данные таблицы Google на DataTable

Проблема: Вся документация, которую я вижу, использует DataTable, который записывает данные в сам скрипт. Мне нужно вызвать эту всплывающую подсказку из существующих строк. Мне нужно понять разницу в коде между HTML-страницей и встроенной диаграммой в листе Google.

Цель: У меня есть диаграмма рассеяния, для которой нужны настраиваемые всплывающие подсказки. Мне нужны данные из столбца Q для отображения в виде всплывающей подсказки при наведении курсора на данные в столбцах R и S вставьте диаграмму, используя этот код плюс всплывающую подсказку:

    function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[11];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.SCATTER)
     .addRange(sheet.getRange('R3:S5000'))
     .addRange(sheet.getRange('Q3:Q5000'))

     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

-ИЛИ-

 function drawChart() {
        var dataTable = new google.visualization.DataTable();
        dataTable.addColumn('string', 'Year');
        dataTable.addColumn('number', 'Sales');
        // A column for custom tooltip content
        dataTable.addColumn({type: 'string', role: 'tooltip'});
        dataTable.addRows([
          ['2010', 600,'$600K in our first year!'],
          ['2011', 1500, 'Sunspot activity made this our best year ever!'],
          ['2012', 800, '$800K in 2012.'],
          ['2013', 1000, '$1M in sales last year.']
        ]);

        var options = {
          tooltip: {isHtml: true},
          legend: 'none'
        };
        var chart = new google.visualization.ColumnChart(document.getElementById('col_chart_html_tooltip'));
        chart.draw(dataTable, options);
      }

использованная литература: https://developers.google.com/chart/interactive/docs/reference#DataViewhttps://developers.google.com/chart/interactive/docs/customizing_tooltip_content#tooltip-actionshttps://developers.google.com/chart/interactive/docs/spreadsheets

Вот аналогичный вопрос, который может быть актуальным. ссылка на сайт

rin 04.12.2018 05:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
556
1

Ответы 1

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

см. следующий фрагмент ...

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[11];

  // build the data view definition
  var COLUMN_SPEC = [
    0,
    1,
    {sourceColumn: 2, role: 'tooltip'}
  ];
  var viewSpec = Charts.newDataViewDefinition()
     .setColumns(COLUMN_SPEC)
     .build();

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.SCATTER)
     .setDataViewDefinition(viewSpec)
     .addRange(sheet.getRange('R3:S5000'))
     .addRange(sheet.getRange('Q3:Q5000'))

     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

Итак, @whitehat, где мне ввести столбец всплывающей подсказки (Q3: 5000)? Спасибо!

rin 04.12.2018 20:36

Я получаю эту ошибку: TypeError: не удается найти функцию setDataViewDefinition в объекте EmbeddedChartBuilder. @WhiteHat

rin 04.12.2018 22:06

Поэтому, надеясь использовать ваш setDataViewDefinition, я нашел developers.google.com/apps-script/reference/charts/…, используя диаграмму рассеяния. Я также очень разочарован всеми документами, показывающими UiApp во всех своих примерах. Это делает его таким сложным, когда он смешивается с устаревшими вещами. Тогда как я могу взять пример на этой странице для работы с сервисом HTML, таким как developers.google.com/apps-script/guides/html? @Белая шляпа

rin 04.12.2018 22:44

Я вижу, что ваш ответ не работает. Я перечислил ошибку выше, а также мой новый план с использованием вашего setDataViewDefinition без EmbeddedChartBuilder. У вас есть какие-либо разъяснения или какие-либо способы, которые помогут мне разобраться в этом самостоятельно? спасибо @whitehat

rin 10.12.2018 17:09

Другие вопросы по теме