Google Apps Script le permite crear y modificar Documentos de Google de manera programática, y personalizar la interfaz de usuario con nuevos menús, cuadros de diálogo y barras laterales.
Conceptos básicos
Apps Script puede interactuar con Documentos de Google de dos maneras generales: cualquier secuencia de comandos puede crear o modificar un documento si el usuario de la secuencia de comandos tiene los permisos adecuados para el documento, y también se puede usar vinculado a un documento, lo que le da las habilidades especiales del guion para alterar la interfaz de usuario o responder cuando documento esté abierto. Para crear una secuencia de comandos vinculada a un contenedor desde Documentos de Google, sigue estos pasos: Haz clic en Extensiones > Apps Script.
En cualquier caso, es sencillo interactuar con un documento de Google Docs a través de De Apps Script Document Service, como se muestra en el siguiente ejemplo demuestra.
function createDoc() { var doc = DocumentApp.create('Sample Document'); var documentTab = doc.getTab('t.0').asDocumentTab(); var body = documentTab.getBody(); var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']]; body.insertParagraph(0, doc.getName()) .setHeading(DocumentApp.ParagraphHeading.HEADING1); table = body.appendTable(rowsData); table.getRow(0).editAsText().setBold(true); }
La secuencia de comandos de arriba crea un documento nuevo en la unidad de Google Drive del usuario.
Recupera la pestaña con el ID t.0
(la primera pestaña predeterminada) e inserta un párrafo
que contenga el mismo texto que el nombre del documento, diseña ese párrafo como un
y agrega una tabla basada en los valores de un array bidimensional. El
de comandos podría realizar estos cambios en un documento existente con la misma facilidad
Reemplazando la llamada a DocumentApp.create()
.
con DocumentApp.openById()
o openByUrl()
.
Para las secuencias de comandos creadas dentro de un documento (vinculadas al contenedor), usa
DocumentApp.getActiveDocument()
y Document.getActiveTab()
.
Estructura de un documento
Desde la perspectiva de Apps Script, un documento de Documentos de Google se estructura
similar a un documento HTML, es decir, un documento está compuesto por uno o más
Objetos Tab
, cada uno de los cuales contiene
elementos (como un Paragraph
o
Table
) que suelen contener otros
o de terceros. La mayoría de las secuencias de comandos que modifican un documento de Documentos de Google comienzan con una llamada a
getTab()
y
asDocumentTab()
seguida de getBody()
,
porque Body
es un elemento central
que contiene todos los demás elementos de una pestaña, excepto el
HeaderSection
,
FooterSection
y cualquier
Footnotes
.
Sin embargo, existen reglas sobre qué tipos de elementos pueden contener otros tipos. Además, el servicio de documentos de Apps Script solo puede insertar ciertos tipos de elementos en otros elementos. En el siguiente árbol, se muestra elementos pueden estar contenidos por un cierto tipo de elemento.
los elementos en negrita se pueden insertar. los elementos que no están en negrita solo se pueden manipularse en el lugar.
- Documento
- Pestaña
-
.
- DocumentTab
-
.
- Cuerpo
- HeaderSection
- ListItem
- .
.
- HorizontalRule
- InlineDrawing
- InlineImage
- Texto
- UnsupportedElement (número de página, etc.)
- Párrafo
-
.
- HorizontalRule
- InlineDrawing
- InlineImage
- Texto
- UnsupportedElement (número de página, etc.)
- Tabla
- ListItem
- FooterSection
- ListItem
- .
.
- HorizontalRule
- InlineDrawing
- InlineImage
- Texto
- UnsupportedElement (número de página, etc.)
- Párrafo
-
.
- HorizontalRule
- InlineDrawing
- InlineImage
- Texto
- UnsupportedElement (número de página, etc.)
- Tabla
- ListItem
- FootnoteSection
- DocumentTab
- Pestaña
Reemplazo de texto
Apps Script suele usarse para reemplazar texto en Documentos de Google. Digamos que tienes un completa con información de los clientes y deseas generar una hoja de cálculo Google Docs para cada cliente. (este tipo de operación suele llamarse una operación de correo merge.)
Hay muchas maneras de reemplazar texto, pero la más sencilla es
replaceText()
que se muestra en el siguiente ejemplo. replaceText
admite la mayoría
de las funciones de expresión regular de JavaScript. La primera función a continuación
Agrega varias líneas de texto de marcadores de posición a un documento de Google. en el mundo real,
tendría más probabilidades de escribir los marcadores de posición en el documento por su cuenta. El
La segunda función reemplaza los marcadores de posición por propiedades definidas en el archivo
client
.
Ten en cuenta que ambas funciones usan la
getActiveDocument()
y
getActiveTab()
métodos, que solo se aplican a las secuencias de comandos creadas en un documento de Documentos de Google.
en un script independiente, utiliza
DocumentApp.create()
openById()
,
o openByUrl()
en combinación con Document.getTab()
en su lugar.
Agrega algunos marcadores de posición
function createPlaceholders() { var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody(); body.appendParagraph('{name}'); body.appendParagraph('{address}'); body.appendParagraph('{city} {state} {zip}'); }
Reemplaza los marcadores de posición
function searchAndReplace() { var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody(); var client = { name: 'Joe Script-Guru', address: '100 Script Rd', city: 'Scriptville', state: 'GA', zip: 94043 }; body.replaceText('{name}', client.name); body.replaceText('{address}', client.address); body.replaceText('{city}', client.city); body.replaceText('{state}', client.state); body.replaceText('{zip}', client.zip); }
Interfaces de usuario y menús personalizados
Puedes personalizar Documentos de Google agregando menús, cuadros de diálogo y barras laterales. Sin embargo, ten en cuenta que una secuencia de comandos solo puede interactuar con la IU para la instancia actual de un documento abierto, y solo si la secuencia de comandos está bound para el documento.
Consulta cómo agregar menús personalizados y diálogos a tus Documentos de Google. Para obtener más información sobre cómo crear interfaces personalizadas para un diálogo o una barra lateral, consulta el guía sobre el servicio HTML. Si planeas publicar tu interfaz personalizada como parte de una complemento, sigue la guía de estilo para mantener la coherencia con las y el diseño del editor de Documentos de Google.
Complementos para Documentos de Google
Los complementos se ejecutan dentro de Documentos de Google y se pueden instalar. de la tienda de complementos de Documentos de Google. Si desarrollaste una secuencia de comandos para Documentos de Google y quieres compartirla con el mundo, Apps Script te permite publicar tu secuencia de comandos como un para que otros usuarios puedan instalarlo desde la tienda del complemento.
Para ver cómo puedes crear un complemento para Documentos de Google, consulta la siguiente información: guía de inicio rápido para compilar complementos de Documentos.
Activadores
Las secuencias de comandos que están vinculadas a una cuenta de Google
El documento puede usar un activador simple para responder
al evento onOpen
del documento, que
se produce cada vez que un usuario con acceso de edición al documento lo abre en Documentos de Google.
Para configurar el activador, solo escribe una función llamada onOpen()
. Por ejemplo
de este activador, consulta Menús personalizados en Google Workspace.
Si bien el activador simple es útil para agregar menús, no puede usar ninguna app
Servicios de secuencias de comandos que requieren autorización