Как перечислить записи из диапазона столбцов листа Google в таблице HTML?

В настоящее время я использую следующий код для извлечения записей номера PO из столбца A на вкладке Google Sheet с именем «POHistory». Проблема в том, что мои записи не отображаются вертикально в пользовательском интерфейсе HTML. Вместо этого они заполняются слева направо. Вы можете помочь исправить?

ОБНОВЛЕННЫЙ СЦЕНАРИЙ ПРИЛОЖЕНИЯ:

function Review() {
  var html = HtmlService.createTemplateFromFile('orderHistory').evaluate();
  html.setHeight(600).setWidth(800);
   SpreadsheetApp.getUi()
  .showModalDialog(html, 'Order History');
}

function htmlOrders() {
  var active = SpreadsheetApp.getActive();
  var sheet = active.getSheetByName("POHistory");
  var lastRow = sheet.getLastRow();
  var myRange = sheet.getRange("A2:A" + lastRow); 
  var data    = myRange.getValues();
  var optionsHTML = "";
  for (var i = 0; i < data.length; i+=1) {
    optionsHTML += "<tr>";
   for(var j = 0; j < data[0].length; j++){
    optionsHTML += "<td>" + data[i][j] + "</td>";
  };
  optionsHTML += "</tr>";
  return optionsHTML;{
}

ОБНОВЛЕННЫЙ HTML:

<!DOCTYPE html>
<html>
<head>
<style>
table {
    font-family: arial, sans-serif;
    border-collapse: collapse;
    width: 100%;
}

 td, th {
     border: 1px solid #dddddd;
    text-align: left;
    padding: 8px;
}

 tr:nth-child(even) {
    background-color: #dddddd;
}
 </style>
 </head>
 <body>

  <table>
   <tr>
    <th>PO Number</th>
    <th>Vendor</th>
    <th>Date</th>
    <th>Total</th>
  </tr>
   <?!= htmlOrders(); ?>
</table>
</body>
</html>

Каждый из ваших параметров добавляется в строку, но вы также вставляете весь вывод в одну строку. Удалите <tr> и </tr>, которые связывают <?!= htmlOrders(); ?>.

tehhowch 10.04.2018 17:36

Спасибо, Техховч. Я только что попробовал, и теперь все 3 моих записи появляются в одной ячейке чуть выше строки заголовка таблицы. Не уверен, что делаю не так.

Eric K. 10.04.2018 17:38

Добавьте соответствующий новый фрагмент в конец сообщения, чтобы мы могли точно увидеть, как вы структурируете клиентский документ. Также включите бит HTML, оцененный на стороне клиента (используйте F12, чтобы открыть консоль браузера, и используйте средство выбора элементов, чтобы быстро найти таблицу

tehhowch 10.04.2018 17:41

Tehhowch - Я добавил обновленный HTML-код в сообщение выше. Сообщите мне, что вы считаете ошибочным. Большое спасибо!

Eric K. 10.04.2018 17:46

А клиентский HTML?

tehhowch 10.04.2018 17:53

Я обновил указанное выше сообщение, чтобы отразить последнее обновление, которое я внес в часть кода APPS SCRIPT в файле, с которым я работаю.

Eric K. 10.04.2018 18:14

Я упускаю что-то, что тебе нужно увидеть, Техховч?

Eric K. 10.04.2018 18:22
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
7
43
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обычно для построения таблицы из диапазона электронных таблиц требуется два цикла, один для строк (<tr>), другой для ячеек (<td>). Предполагая, что таблица должна иметь ту же форму (строки и столбцы), что и данные в электронной таблице, должно работать примерно следующее:

var tableData = '';
for(var i = 0; i < data.length; i++){
  tableData += '<tr>';
  for(var j = 0; j < data[0].length; j++){
    tableData += '<td>' + data[i][j] + '</td>';
  }
  tableData += '</tr>';
}

Я думаю, что биты <td> могут быть в части data[i][0] функции htmlOutput() - вот почему я попросил также увидеть HTML-код на стороне клиента в моем комментарии выше.

tehhowch 10.04.2018 17:52

@tehhowch: Чтобы быть уверенным в том, что OP должен поделиться образцом исходных данных.

Rubén 10.04.2018 18:03

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