Update A Document es-419 Explainer

Explicador de Actualiza un documento

Objetivo de este acertijo: Usar Apps Script para escribir una función que reemplace texto en un documento de Docs.

Tutorial de la solución: Para el último tema de este curso, usarás Apps Script para crear una función que automatice el proceso de creación de contratos.

En este acertijo, escribirás la segunda de dos funciones asistentes que se usarán más adelante en la función principal. La función debe reemplazar varias palabras en un documento de Docs.

En el código de inicio, la función asistente updateDoc toma un doc y algunos edits. El parámetro doc representa un archivo que es una copia de un contrato, por ejemplo:

Este acuerdo certifica que el CLIENTE pagará $TARIFA por el SERVICIO.

El parámetro edits representa un arreglo anidado, donde la primera palabra en cada arreglo interior es un marcador de posición que se debe reemplazar y la segunda es la palabra para poner en su lugar. Por ejemplo:

let edits = [
  ["CLIENT", "Saanvi",],
  ["FEE", "275",], 
  ["SERVICE", "Tree Pruning"]
];

Para completar el acertijo, agrega un for…of loop dentro de updateDoc() que itere por cada edit de edits. A continuación, dentro del for…of loop, agrega doc.replaceText(). Define el primer argumento como edit[0] y el segundo argumento en edit[1].

Conceptos de JavaScript: variables, strings, parámetros, argumentos, declaraciones de funciones, llamadas de función, declaraciones de importación, arreglos anidados, indexación de arreglos

Conceptos de Apps Script: .replaceText()

Código adicional (código oculto que se ejecuta antes del código del acertijo):

let textEdits = [
  ["CLIENT", "Saanvi",],
  ["FEE", "275",],
  ["SERVICE", "Tree Pruning"]
];

mi error fue que no declare la variable dentro del for of loop la solución que me funciono es:

import { copyOfContract, textEdits } from ‘grasshopper.documents’;

function makeCopy(id, name) {
let file = DriveApp.getFileById(id);
let copy = file.makeCopy(name);
return copy.getId();
}

function updateDoc(doc, edits)
{for (let edit of edits){ doc.replaceText(edit [0],edit [1]);}
}

updateDoc(copyOfContract, textEdits);

1 Like