Как добавить горизонтальную полосу прокрутки на листе Google, аналогично полосе прокрутки в Excel? - PullRequest
1 голос
/ 04 июня 2019

Я хотел бы добавить горизонтальную полосу прокрутки, которая будет предоставлять значения 0-365 в зависимости от ее положения, и использовать это значение для расчета.

Я создаю диаграмму Ганта, такую ​​же, как на страницеhttps://www.vertex42.com/ExcelTemplates/excel-gantt-chart.html

Существует горизонтальная полоса прокрутки, которая помогает "перемещаться" с календарем.

Я поместил туда число, которое я должен изменить вручную.Я не нашел решения в интернете.

1 Ответ

1 голос
/ 04 июня 2019

Этот вид контроля просто недоступен в Google Sheets.Я нашел недавний ответ на форумах поддержки Google , указывающий на то, что это все еще так.

Если вы хотите создать эту функцию самостоятельно, на самом деле теперь это можно сделать,воспользоваться всеми преимуществами платформы Apps Script и их Google Sheets и API сценариев HTML Service .Вы можете создать диалоговое окно с HTML и JS, которое может иметь любые входные данные, в том числе ползунки диапазона, и оно может отправлять значения обратно в скрипт Google Sheet, который затем может сохранить его в ячейке.Я собрал тест barebones, чтобы убедиться, что он будет работать, и он работает:

GIF Demo

Я использовал Menu -> Tools -> Script Editor, а затем создал эти два файла:

Code.gs:

// Trigger dialog to be added to menu on file open
function onOpen() {
  SpreadsheetApp.getUi()
      .createMenu('Dialog')
      .addItem('Open', 'openDialog')
      .addToUi();
}

function openDialog() {
  var html = HtmlService.createHtmlOutputFromFile('index');
  SpreadsheetApp.getUi()
      .showModalDialog(html, 'Dialog title');
}

function saveSliderVal(updatedVal){
  var sheetToSaveTo = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Gantt');
  if (!sheetToSaveTo){
    sheetToSaveTo = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  }
  var cellToSaveTo = sheetToSaveTo.getRange('A1:A1');
  cellToSaveTo.setValue(updatedVal);
}

index.html:

<!DOCTYPE html>
<html>
<head>
    <base target="_top">
</head>
<body>
    <script>
        function update() {
            document.getElementById('val').innerText = document.getElementById('input').value;
        }
        function save() {
            // Call sheet function
            google.script.run.saveSliderVal(parseInt(document.getElementById('input').value, 10));
        }
    </script>
    <input id="input" type="range" min="0" max="365" onchange="update()" oninput="update()" value="0"
        step="1" />&nbsp<span id="val">0</span>
    <br />
    <button id="save" onclick="save()">Save to Gantt</button>
</body>
</html>

Затем перезагрузите лист после сохранения скрипта, и вы увидите Dialog -> Open какновый пункт меню.Нажав на нее, вы откроете свой собственный HTML.

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