簡體   English   中英

使用Google Apps腳本中的數組輸入追加表

[英]Appending Table with input from arrays in Google apps Script

我一直在嘗試向插件中添加函數,該函數將在文檔末尾創建一個表。

按鈕文本在HTML中定義為:

<button onclick="google.script.run.chronTable()">In Order</button>

.gs文件中的函數如下:

function chronTable() {

  var body = DocumentApp().getActiveDocument().getBody();
  var chronTable = body.appendTable();

    //Create 5 rows and 4 columns
  for(var i=0; i<3; i++){
    var tr = chronTable.appendTableRow();
    }
    //add 4 cells in each row
    for(var j=0; j<2; j++){
      var td = tr.appendTableCell('Cell '+i+j);
    }
}

最后,我要插入在較早的函數中定義的文本,該函數使用HTML中的按鈕將屬性應用於文本,並將其存儲在數組中,如下所示:

function highlightStyleRed() {

  //App>Doc>Body>Paragraph>Text
  //selection>rangeElements>RangeElement>Element>Text

  var selection = DocumentApp.getActiveDocument().getSelection();
  if (selection) {

//declare variables once before loop
var elements = selection.getRangeElements();    
var rngEelement;
var element;
var text;
var startOffset;
var endOffsetInclusive;
var redSelected = []; // creates array for export to appended table

//loop through selection
for (var i=0; i < elements.length; i++){
  rngElement = elements[i];
  element = rngElement.getElement();
  if (element) {
    text = element.asText();  
    if (text) {
      //if we are on a 'partial element' we need to only grab the selected part of the text
      if (rngElement.isPartial()) {
        startOffset = rngElement.getStartOffset();
        endOffsetInclusive = rngElement.getEndOffsetInclusive();
        text.setBackgroundColor(startOffset, endOffsetInclusive, '#ff3333');
        redSelected.push(text);//pushes text to array

      } else {
        text.setBackgroundColor('#ff3333');
        redSelected.push(text);//pushes text to array

      }
    }
  }
}

}}

到目前為止,我什至無法顯示表格。 這段代碼中缺少什么嗎?

另外,當我嘗試聲明該數組並將該數組插入到表格單元格中時,無法識別它。 我可以聲明在其他函數中創建的數組嗎?

在第一個代碼上,您必須將for循環放入另一個for循環內:

for(var i=0; i<3; i++){
    var tr = chronTable.appendTableRow();

    //add 4 cells in each row
    for(var j=0; j<2; j++){
      var td = tr.appendTableCell('Cell '+i+j);
    }
}

使用前面的代碼,它創建了一個表,但是在Doc中創建了一個錯誤。

對於您問題的第二部分,我不確定您嘗試做什么。 你能解釋一下嗎? 或舉一個例子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM