将电子表格中的每个值返回到网络应用表

时间:2016-09-16 04:46:14

标签: javascript google-apps-script google-sheets

我正在尝试做什么:

  1. 从电子表格中获取每个值(6列,~10 +行)

    • 我可以获得价值。我可能会使用.getRange(row, column, sheet.getLastRow() - 1, 1).getValues();单独获取每列。或者我可以使用.getDataRange().getValues()获取每个值,然后将它们放在表格中?

    • 只使用for循环会更好吗? - 最底层的例子

  2. 返回[{1}}代码包围的[模板化HTML?]值 -

  3. 当名称获取时,在Web应用程序上显示包含值的表格 点击

    • 插入的<table>, <tr>, <th>, <td>代码是否可以<table>开头,然后点击名称时,是否显示表格?或者将它放在一个不可见的div中,然后点击后可见?
  4. 表格示例:

    style="display: none;"

    我不知道我要做的事情是否算作模板化的HTML,或者使用模板化的Html做更好的事情......

    我需要帮助的重点是返回表中的每个值并将其显示在Web应用程序上。

    for循环的示例

    如果我执行for循环并返回列或行中的每个值

    <table>
     <tr>
      <th>header1</th>
      <th>header2</th>
      <th>header3</th>
      <th>header4</th>
      <th>header5</th>
      <th>header6</th>
     </tr>
     <tr>
      <td>value1</td>
      <td>value2</td>
      <td>value3</td>
      <td>value4</td>
      <td>value5</td>
      <td>value6</td>
     </tr>
     //etc
    </table>
    

    column1[i]  
    column2[i]  
    etc  
    

    如何将这些值作为表格返回?

    会是这样的:

    row1[i]  
    row2[i]  
    etc 
    

    如果是这样,我如何从所有行/列值中创建一个完整的表?

    另外,一旦完全构建了css,我将如何用css设置表格?我假设我仍然可以在表格中添加一个id并从那里设置样式。

    我不知道电子表格中确切的行数,因此将此动态设置为最佳 - 可能获取所有行而不是列并为每行使用for循环?

    任何帮助将不胜感激。感谢。

    如果我想在表格中添加另一列(而不是在电子表格中),我该怎么做呢?我正在尝试向标题行添加添加行按钮,并在每行表数据的末尾添加删除行按钮。

    另外,我知道您可以将var x = "<tr>"; var y = row1[i]; var z = "</tr>"; return x + y + z 设置为<td> ...但是,如果数据只能在新添加的行上进行编辑而且表格单元格不能在编辑一次提交值? - 我是否需要一个事件监听器或一些触发器来查看何时输入值并将该单元格触发到<td contenteditable='true'>

    再次感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用嵌套的for循环。

var range = SpreadsheetApp.getActiveSpreadsheet().getDataRange().getValues();
var isHeader = true;
var html = "<table>\n";
for (var i = 0; i < range.length; i++) {
  html += "<tr>\n";
  for (var j = 0; j < range[i].length; j++) {
    if (isHeader) {
      html += "<th>" + range[i][j] + "</th>\n";
    }
    else {
      html += "<td>" + range[i][j] + "</td>\n";
    }
  }
  isHeader = false;
  html += "</tr>\n";
}
html += "</table>";