es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Scripts de Google Apps – Forma óptima de reemplazar texto

Tengo toneladas de cadenas que necesito reemplazar en un documento de Google. El rendimiento de mi script está sufriendo mucho y ahora tarda una eternidad en ejecutarse. Estoy buscando cómo optimizarlo.

¿Existe una forma más óptima de reemplazar texto en un documento de Google utilizando los scripts de Google?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma más óptima de reemplazar múltiples cadenas en un Documento de Google utilizando Google Scripts. En lugar de llamar a replaceText varias veces, puedes utilizar BatchUpdateRequest para actualizar varias cadenas en una única solicitud HTTP, lo cual puede mejorar el rendimiento.

    Aquí tienes un ejemplo de código utilizando BatchUpdateRequest:

    function replaceText() {
      var doc = DocumentApp.getActiveDocument();
      var requests = [];
    
      requests.push({
        replaceAllText: {
          replaceText: "nuevoValor1",
          containsText: {
            text: "valorAntiguo1",
            matchCase: true
          }
        }
      });
    
      requests.push({
        replaceAllText: {
          replaceText: "nuevoValor2",
          containsText: {
            text: "valorAntiguo2",
            matchCase: true
          }
        }
      });
    
      requests.push({
        replaceAllText: {
          replaceText: "nuevoValor3",
          containsText: {
            text: "valorAntiguo3",
            matchCase: true
          }
        }
      });
    
      // Enviar la solicitud de actualización por lotes
      var response = Docs.Documents.batchUpdate({
        requests: requests
      }, doc.getId());
    }
    

    En este ejemplo, creamos un array de requests que contiene múltiples solicitudes replaceAllText para actualizar diferentes cadenas. Luego utilizamos Docs.Documents.batchUpdate para enviar la solicitud de actualización por lotes, pasando el array de requests y el ID del documento.

    Utilizar BatchUpdateRequest puede mejorar significativamente el rendimiento de tu script, especialmente cuando se trata con un gran número de cadenas a reemplazar.

Comments are closed.