google-apps-script - 使用 Google Apps 脚本删除 Google 文档中的表格行

标签 google-apps-script google-docs

我正在尝试使用 Google Apps 脚本将电子表格中的信息大量创建到 Google,但我不知道如何使用 Table 类(特别是方法:RemoveRow)

我创建了一个示例(不太复杂)来说明我的问题。我有一个名为“Sales Reports”的Google文档,该文档从名为Data的Google表格中读取信息。到目前为止没问题,我可以做到。

但是,有一个条件。产品A和产品B是排他性的,即:如果我购买“产品A”,那么我就不会购买“产品B”,反之亦然。 Google 文档必须显示 1 行(而不是 2 行)。代码类似于:

var TEMPLATE_ID = 'xyz';
function createPdf() {
  var activeSheet = SpreadsheetApp.getActiveSheet(),
  numberOfColumns = activeSheet.getLastColumn(),
  numberOfRows = activeSheet.getLastRow(),
  activeRowIndex = activeSheet.getActiveRange().getRowIndex(),
  activeRow = '',
  headerRow = activeSheet.getRange(1, 1, numberOfRows, numberOfColumns).getValues()
  var destFolder = DriveApp.getFolderById("aaaaaaa");

 for(i=2;i<=numberOfRows;i++) {
 var copyFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy()
 copyId = copyFile.getId(),
 copyDoc = DocumentApp.openById(copyId),
 copyBody = copyDoc.getActiveSection()
 activeRow = activeSheet.getRange(i, 1, 1, numberOfColumns).getValues();

 for (columnIndex = 0;columnIndex < headerRow[0].length; columnIndex++) {
    copyBody.replaceText('%' + headerRow[0][columnIndex] + '%', 
                     ''+activeRow[0][columnIndex]);    
}


copyDoc.saveAndClose()

                              .....
            //code: create pdf with the custom template

}

} //fin del crear

我需要做哪些改变?

您好,提前致谢。

最佳答案

此函数会删除 Google 文档中所有表格中的所有空行:

/**
 * Remove all the empty rows from all the tables in a document
 *
 * @param {String} documentId
 */

function removeEmptyRows(documentId) {

  var tables = DocumentApp.openById(documentId).getBody().getTables()

  tables.forEach(function(table) {

    var numberOfRows = table.getNumRows()

    for (var rowIndex = 0; rowIndex < numberOfRows; rowIndex++) {

      var nextRow = table.getRow(rowIndex)
      var numberOfColumns = nextRow.getNumCells()

      // A row is assumed empty until proved otherwise
      var foundEmptyRow = true

      for (var columnIndex = 0; columnIndex < numberOfColumns; columnIndex++) {  

        if (nextRow.getCell(columnIndex).getText() !== '') {
          foundEmptyRow = false
          break
        }

      } // for each column

      if (foundEmptyRow) {
        table.removeRow(rowIndex)
        numberOfRows--
      }

    } // For each row
  })

} // removeEmptyRows() 

关于google-apps-script - 使用 Google Apps 脚本删除 Google 文档中的表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33682922/

相关文章:

google-docs - 是否有 Google 文档方程编辑器符号名称列表,例如 "\alpha"?

google-docs - derbyJS - 实时了解谁做出了更改

google-apps-script - 在谷歌文档中嵌入谷歌趋势图表

html - 为 Google 表单生成自己的 HTML

html - 如何将 html 数据从 Google 侧边栏传递到 gs 代码中的变量

google-apps-script - 发布新版 Google 表格插件

vba - 单步执行 Google Apps 脚本中的代码(相当于 VBA-GAS)

google-apps-script - 自动删除谷歌驱动器中的文件

javascript - 使用 Apps Script API 的 Chrome 应用

javascript - 在 Google Scripts 自定义函数中接受任意数量的参数?