Как преобразовать столбец даты в формат JSON для API визуализации Google - PullRequest
0 голосов
/ 21 апреля 2019

Вот как я создаю таблицу данных, которая приходит из электронной таблицы Google.

 var params = { 
    valueRenderOption: "UNFORMATTED_VALUE",
    spreadsheetId: '15WX-5oiu54oiu35oi3u4o5o34iu5ou43oiu534',
    range: 'Sheet2!A:H', // Retrieve the values of "A:H".
  };
      var request = gapi.client.sheets.spreadsheets.values.get(params); 
  request.then(function(response) {
         var values = response.result.values.map(function(e) {return [e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7]]}); // Added
    var w = new google.visualization.ChartWrapper({dataTable: values}); // Added

    var dataTable = w.getDataTable();

     dataTable.setColumnProperty(2, 'role', 'tooltip')
     dataTable.setColumnProperty(3, 'role', 'style')
     dataTable.setColumnProperty(4, 'date', 'Start'); 
     dataTable.setColumnProperty(5, 'date', 'End');
     dataTable.setColumnProperty(2, {type: 'string', role: 'tooltip', p: {html: true}});

 ......

Как указать свойство столбца 6 столбца (indexColumn5) в качестве даты?

Если я создаю упаковщик диаграмм, он завершается с ошибкой «Столбец 6 не дата».

var chartwraprange = new google.visualization.ControlWrapper({
controlType: 'DateRangeFilter',
containerId: 'controldaterange',
dataTable:dataTable,
options: {
  filterColumnIndex: 6,

   'ui': {
                'label': '',
                 format:{pattern: "MM-dd-yyyy"},
         },    
         }
         });

1 Ответ

2 голосов
/ 21 апреля 2019
  • Вы хотите получить e[5] из var values = response.result.values.map(function(e) {return [e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7]]}) в качестве объекта даты.
    • e[5] - это столбец "F".

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

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

В этой модификации значения даты, полученные в качестве серийного номера, преобразуются во время Unix и в объект даты. Пожалуйста, отразите следующую модификацию вашего скрипта.

От:

var values = response.result.values.map(function(e) {return [e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7]]});

Кому:

var values = response.result.values.map(function(e) {return [e[0], e[1], e[2], e[4], new Date((e[5] - 25569) * 86400 * 1000), e[6]]});

Справка:

Если я неправильно понимаю ваш вопрос, я прошу прощения.

...