Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

422
Visualizações
Eliminación de filas combinadas vacías en la parte inferior de la tabla de Presentaciones con Google Apps Script

Tengo un script de Google Apps que toma datos de una hoja de Google y los copia en una plantilla de diapositivas de Google con una tabla. En algunos casos, no hay tantas filas de datos en la hoja como en la tabla de plantilla y, como resultado, algunas filas de la tabla quedan parcialmente en blanco (vea la captura de pantalla de la tabla a continuación). Escribí una función que elimina las filas vacías de una tabla de Presentaciones de Google (vea la captura de pantalla del resultado deseado a continuación), y funciona bien en otras tablas que no tienen celdas combinadas (con la modificación de usar rowIndex++ en lugar de rowIndex = rowIndex + 3 en el bucle for).

 function removeEmptyRowsTest(removeId) { var slides = SlidesApp.openById(removeId).getSlides(); var metricExcepSlide = slides[0]; var metricExcepTables = metricExcepSlide.getTables(); var table = metricExcepTables[0]; var numberOfRows = table.getNumRows(); for (var rowIndex = 1; rowIndex < numberOfRows; rowIndex = rowIndex+3) { var nextRow = table.getRow(rowIndex); // A row is assumed empty until proven otherwise var foundEmptyRow = false; //Logger.log(numberOfColumns) Logger.log(foundEmptyRow) Logger.log(nextRow.getCell(0).getText().asString()) Logger.log(nextRow.getCell(0).getText().asString().length) if (nextRow.getCell(0).getText().asString().length == 1) { foundEmptyRow = true; } if (foundEmptyRow) { table.getRow(rowIndex).remove() numberOfRows--; rowIndex--; } } }

Pero cuando ejecuto la función en la tabla que se muestra a continuación, aparece el error Exception: This operation is only allowed on the head (upper left) cell of the merged cells. . Estoy confundido, porque tengo ganas de inicializar el índice de rowIndex en 1 e incrementarlo en 3 solo debería aplicarse a la celda superior izquierda del conjunto de tres celdas combinadas. Recibo el mismo error cuando inicializo el índice de rowIndex en 0 y/o lo incremento en 1. ¿Alguien sabe cómo puedo evitar este error y eliminar las filas vacías en la parte inferior de la tabla?

Enlace a la tabla de diapositivas de Google de muestra

Tabla de diapositivas de Google

Mesa final deseada

Mensaje de error

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que su objetivo es el siguiente.

  • Desea eliminar la fila cuando las columnas "A", "C", "D" y "E" en Google Slides están vacías.
  • Su objetivo se muestra en sus imágenes de muestra en su pregunta.
  • Quiere lograr esto usando Google Apps Script.

En este caso, ¿qué tal la siguiente modificación? En esta modificación, "HEAD" y "MERGED" se verifican mediante el método de getMergeState . Se utiliza el bucle inverso.

Guión modificado:

 function removeEmptyRowsTest(removeId) { var slides = SlidesApp.openById(removeId).getSlides(); var metricExcepSlide = slides[0]; var metricExcepTables = metricExcepSlide.getTables(); var table = metricExcepTables[0]; var numberOfRows = table.getNumRows(); // I modified below script. var checkCols = [0, 2, 3, 4]; for (var r = numberOfRows - 1; r > 0; r--) { if (table.getRow(r).getCell(0).getMergeState() == SlidesApp.CellMergeState.HEAD) { var checkEmpty = checkCols.filter(e => table.getRow(r).getCell(e).getText().asString().trim() != ""); if (checkEmpty.length == 0) { for (var dr = 3; dr > 0; dr--) { table.getRow(r + dr - 1).remove(); } } } } }
  • Cuando se ejecuta el script anterior, se verifican las columnas "A", "C", "D" y "E" de la tabla en Google Slides, y cuando esas columnas son valores vacíos, la fila se elimina.

Referencia:

  • getMergeState() de clase TableCell
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda