XLSForm es un estándar abierto que simplifica la creación de formularios. La creación se realiza en un formato legible por el hombre utilizando una hoja de cálculo. Para obtener más información sobre XLSForm, visite https://xlsform.org/. Survey123 admite la mayoría (pero no todas) de las características del estándar XLSForm.
Existen numerosas opciones para crear hojas de cálculo compatibles con XLSForm. Microsoft Excel es la más común, pero hay otras opciones, como Kingsoft Spreadsheets, Google Sheets u OpenOffice Calc. También hay builders de XForms en línea que exportan hojas de cálculo XLSForm que se pueden usar con ArcGIS Survey123.
Para ayudarle a crear los formularios, ArcGIS Survey123 incluye la herramienta de escritorio Survey123 Connect, que funciona en paralelo con la herramienta de creación de XLSForm para crear archivos XLS. Survey123 Connect le permite obtener una vista previa de sus archivos XLSForm durante su creación o edición, publicar los formularios en ArcGIS Online y ArcGIS Enterprise, y crear capas de entidades en función de la especificación del formulario para la captura de datos. ArcGIS Survey123 Connect está disponible para Windows.
Una vez que los formularios se han publicado en ArcGIS, puede usar el sitio web de Survey123 para compartir los formularios con los miembros de sus organizaciones de ArcGIS. También puede analizar los mapas y las tablas para los datos capturados a través de la aplicación de campo Survey123, además de exportar los resultados de la encuesta.
Para los fines de este tema, supondremos que va a usar ArcGIS Survey123 Connect y Microsoft Excel para crear sus formularios.
Normalmente, cada libro de trabajo de Excel tiene dos hojas de cálculo: survey y choices. Más adelante, se describe también una tercera hoja de cálculo denominada settings. Las hojas de cálculo tienen un conjunto de columnas obligatorias que deben estar presentes para que el formulario funcione. Además, cada hoja de cálculo tiene un conjunto de columnas opcionales que ofrecen un mayor control sobre el comportamiento de cada entrada en el formulario. Todas las entradas deben tener valores en las columnas obligatorias, pero las columnas opcionales se pueden dejar en blanco. Las columnas que se agregan al libro de trabajo de Excel, ya sean obligatorias u opcionales, pueden aparecer en cualquier orden. Puede omitir columnas opcionales y dejar cualquier número de filas en blanco. Todo el formato del archivo .xls se pasa por alto, así que puede usar líneas divisorias, sombreados y otros formatos de fuentes para que el formulario resulte más legible.
Hoja de cálculo survey
Esta hoja de cálculo define la estructura general del formulario. Contiene la lista completa de preguntas e información sobre cómo aparecerán en el formulario. Normalmente, cada fila representa una pregunta; sin embargo, hay más características que se describen a continuación y que se pueden agregar al formulario para mejorar la experiencia del usuario.
La hoja de cálculo survey presenta tres columnas obligatorias: type, name y label o hint.
- La columna type especifica el tipo de pregunta de XLSForm que se va a agregar. Hay una lista bien definida de tipos de preguntas posibles para esta columna.
- La columna name determina el nombre del campo de la capa de entidades en el que se almacenarán las respuestas a la pregunta. No se admiten espacios ni caracteres especiales en esta columna. Los nombres deben ser únicos para todas las preguntas de cada capa.
- Las columnas label y hint contienen el texto para las preguntas. Este es el texto que verá en el formulario. Una pregunta requiere al menos una columna label o hint; se recomienda proporcionar la primera para evitar mensajes de advertencia. Se admiten espacios y caracteres especiales en estas columnas. Como alternativa, puede utilizar columnas de traducción. Ambas columnas también admiten el uso limitado de código HTML y variables que se reemplazarán en su encuesta con la respuesta a otra pregunta. Para obtener más información, consulte Notas.
La tabla siguiente contiene todas las columnas admitidas por Survey123. Estas columnas se incluyen en la hoja de cálculo survey de la plantilla Advanced y se enumeran en esta tabla en el orden en que aparecen en la hoja de cálculo.
| Columna | Descripción |
|---|---|
| tipo | Seleccione un tipo de pregunta de la lista proporcionada. Introduzca un nombre de lista válido si utiliza una pregunta select_one o select_multiple. |
| nombre | Nombre de campo en la capa de entidades. |
| etiqueta | La etiqueta de pregunta que aparece en su encuesta. |
| pista | Información que puede ayudar a resolver la pregunta de la encuesta. |
| guidance_hint | Información adicional, solo mostrada después de pulsar un icono. |
| apariencia | Seleccione el aspecto de este campo de la encuesta. |
| obligatorio | Seleccione yes para exigir un valor en este campo antes de completar la encuesta. |
| required_message | Si un campo obligatorio no tiene respuesta, aparecerá el mensaje de esta columna para pedir una respuesta. |
| readonly | Seleccione yes para definir los valores de este campo a solo lectura. Estos valores no se pueden editar en la encuesta. |
| predeterminado | Establezca el valor predeterminado para este campo. Con ello se rellenará previamente la encuesta con el valor predeterminado. Puede utilizarlo para ahorrar tiempo, bien proporcionando una respuesta utilizada habitualmente o mostrando el tipo de respuesta esperado. |
| cálculo | Realice cálculos con los valores de preguntas anteriores (por ejemplo, ${number} * 100). Haga referencia al campo calculate para mostrar el resultado (por ejemplo, The answer is ${calc}). |
| restricción | Limite el rango de números que pueden introducirse (por ejemplo, .>0 y .<100). Se puede usar con todos los tipos de preguntas. |
| constraint_message | Si no se cumplen las condiciones de restricción, aparecerá este mensaje para pedir una respuesta válida. |
| relevante | Le permite omitir preguntas o hacer que aparezcan preguntas adicionales en función de la respuesta a una pregunta anterior. Una pregunta pasa a estar visible si cumple las condiciones de la columna relevant (por ejemplo, ${name} = 'value'). Una pregunta oculta por esta columna solo envía valores nulos. |
| choice_filter | Si utiliza selecciones en cascada, este campo alberga la expresión para asignar las columnas de atributos adicionales de la pestaña choices (por ejemplo, attribute = ${value}). |
| repeat_count | Este valor especifica el número de registros disponibles en una repetición. Una vez especificado el recuento de repeticiones, no puede agregar ni eliminar registros de la repetición. |
| media::audio | Copie un archivo de audio a la subcarpeta de contenido multimedia de su proyecto y escriba el nombre de su archivo de audio (por ejemplo, audio.mp3) para que su pregunta incluya audio. |
| media::image | Copie un archivo de imagen a la subcarpeta de contenido multimedia de su proyecto y escriba el nombre de su archivo de imagen (por ejemplo, image.jpg) para que su pregunta incluya una imagen. |
| bind::type | Un tipo de campo que sobrescribe el tipo de campo predeterminado para la pregunta. |
| bind::esri:fieldType | Defina el tipo de campo de destino en la capa de entidades. Se puede usar para sobrescribir el tipo de campo predeterminado (por ejemplo, los campos calculate y select_one son cadenas de forma predeterminada. Para guardar los valores en la capa de entidades como enteros, seleccione esriFieldTypeInteger). |
| bind::esri:fieldLength | Defina la longitud del campo de destino en la capa de entidades. Se puede usar para sobrescribir la longitud de campo predeterminada. |
| bind::esri:fieldAlias | Proporcione valores para el alias de campo en la capa de entidades. Se puede usar para sobrescribir los valores de alias de campo predeterminados, obtenidos de la etiqueta de la pregunta. |
| body::esri:style | Proporcione expresiones para definir el estilo y el comportamiento de una pregunta (por ejemplo, el color de fondo de los grupos y repeticiones). |
| bind::esri:parameters | Proporcione parámetros para una pregunta que sea específica de Survey123 (por ejemplo, parámetros para controlar el comportamiento de las repeticiones al editar la encuesta). |
| bind::esri:workflow | Proporciona parámetros para permitir que una encuesta esté disponible para un modo de medición de telémetro. |
| parámetros | Proporcione parámetros estándar de XLSForm para una pregunta (por ejemplo, los parámetros start, end y step de una pregunta de rango). |
| body::accept | Defina los tipos de archivo aceptados para la pregunta de archivo. Acepta extensiones de archivo, con varias extensiones de archivo separadas por comas (por ejemplo, .jpg, .png). |
| body::esri:visible | Le permite omitir preguntas o hacer que aparezcan preguntas adicionales en función de la respuesta a una pregunta anterior. Una pregunta pasa a estar visible si cumple las condiciones de la columna body::esri:visible (por ejemplo, ${name} = 'value'). Una pregunta oculta por esta columna todavía contiene y envía valores. |
| body::esri:inputMask | Proporcione una expresión para usar una máscara de entrada y así ofrecer un formato definido para la entrada de datos mediante el uso de caracteres y símbolos. |
| label::language (xx) | Proporcione traducciones para las etiquetas de sus preguntas. El idioma se debe especificar por su nombre y código (por ejemplo, label::Español (es)). Agregue una nueva columna para cada idioma. La lista de idiomas aparecerá en un menú desplegable de la encuesta. |
| hint::language (xx) | Proporcione traducciones para las sugerencias de sus preguntas. El idioma se debe especificar por su nombre y código (por ejemplo, hint::Español (es)). Agregue una nueva columna para cada idioma. La lista de idiomas aparecerá en un menú desplegable de la encuesta. |
| guidance_hint::language (xx) | Proporcione traducciones para sus sugerencias de orientación. Debe especificar el idioma por su nombre y código (por ejemplo, guidance_hint::Español (es)). Agregue una nueva columna para cada idioma. La lista de idiomas aparecerá en un menú desplegable de la encuesta. |
| required_message::language (xx) | Proporcione traducciones para el mensaje que aparece si no se responde a una pregunta obligatoria. El idioma se debe especificar por su nombre y código (por ejemplo, required_message::Español (es)). Agregue una nueva columna para cada idioma. La lista de idiomas aparecerá en un menú desplegable de la encuesta. |
| body::accuracyThreshold | Proporcione un valor numérico para el umbral (en metros), pasado el cual no se aceptarán valores de posición. Se aplica al geopunto y los vértices de las preguntas de geoshape y geotrace. |
| bind::esri:warning | Aplique una expresión que muestre advertencias si no se cumplen las condiciones. |
| bind::esri:warning_message | El mensaje que aparece si no se cumplen las condiciones de bind::esri:warning. |
| bind::saveIncomplete | Establézcalo en true si la aplicación debe guardar automáticamente la respuesta tras la pregunta. |
Hoja de cálculo choices
Esta hoja de cálculo se usa para especificar las opciones de respuesta para las preguntas con varias respuestas. Cada fila representa una opción de respuesta. Las opciones de respuesta con el mismo nombre de lista se consideran parte de un conjunto relacionado de opciones y aparecen juntas para una pregunta. También permite reutilizar un conjunto de opciones para varias preguntas (por ejemplo, preguntas de sí o no).
La hoja de cálculo choices tiene tres columnas obligatorias: list name, name y label.
- La columna list name permite agrupar un conjunto de opciones de respuesta relacionadas. Las opciones con el mismo nombre de lista se presentan como el conjunto de respuestas para una pregunta.
- La columna name especifica el valor que se conserva en ArcGIS. Los valores de la columna name no aceptan caracteres especiales. No se recomienda incluir nombres de opción duplicados en una lista de opciones. Para obtener más información sobre nombres de opciones duplicados, consulte Preguntas con varias opciones.
- La columna label muestra la opción de respuesta tal y como se desea que aparezca en el formulario. Como alternativa, puede utilizar columnas de traducción de etiquetas.
Al crear formularios en Excel, la sintaxis que utilice debe ser precisa. Por ejemplo, si escribe Choices o choice en lugar de choices, el formulario no funcionará.
Hoja de cálculo settings
La hoja de cálculo settings es opcional y le permite personalizar más el formulario. La personalización disponible incluye un título que se muestra mientras se edita el formulario, un nombre de instancia para identificar de forma única cada formulario completado y un identificador de versión único para la encuesta, entre otros. Para obtener más información, consulte Settings.
Hojas de cálculo complementarias
Las plantillas de Survey123 incluyen hojas de cálculo que contienen las propiedades, operadores y funciones que se pueden utilizar en el formulario. Estas hojas de cálculo también se utilizan para rellenar las listas desplegables y otras reglas de validación de datos en las hojas de cálculo survey y settings. Para garantizar que la validación de datos funcione del modo esperado, se recomienda no modificar el contenido de las hojas de cálculo complementarias.
Tipos de preguntas
XLSForm admite diversos tipos de preguntas. Por ejemplo, para recopilar el nombre y la ubicación de una tienda, debe escribir lo siguiente:

La siguiente tabla enumera las preguntas que puede introducir en la columna type de su XLSForm, qué entrada se acepta para la pregunta y el tipo de campo que se crea en la capa de entidades de ArcGIS asociada a esa pregunta cuando se publica el formulario. El autor de la encuesta puede cambiar el tipo de campo de muchos de estos tipos de preguntas. Para obtener más información, consulte Columnas personalizadas de Esri.
| Tipo de pregunta | Entrada de respuesta | Tipo de campo predeterminado |
|---|---|---|
| integer | Entrada de número entero. | esriFieldTypeInteger |
| decimal | Entrada decimal. | esriFieldTypeDouble |
| rango | Entrada de un rango determinado de números. | esriFieldTypeInteger |
| text | Respuesta de texto libre. | esriFieldTypeString |
| select_one list_name | Pregunta con varias opciones en la que el usuario solo puede seleccionar una respuesta. Reemplace list_name con el nombre de su lista de opciones. Puede cambiar el tipo de campo; sin embargo, el nombre de opción siempre se trata como una cadena de caracteres en la aplicación de campo cuando se utiliza en expresiones. | esriFieldTypeString |
| select_multiple list_name | Pregunta con varias opciones en la que el usuario puede seleccionar varias respuestas. Reemplace list_name con el nombre de su lista de opciones. No puede cambiar el tipo de campo y el nombre de opción siempre se trata como una cadena de caracteres en la aplicación de campo cuando se utiliza en expresiones. | esriFieldTypeString |
| rank list_name1 | Pregunta de clasificación; clasificación de una lista de opciones en orden. Reemplace list_name con el nombre de su lista de opciones. No puede cambiar el tipo de campo y el nombre de opción siempre se trata como una cadena de caracteres en la aplicación de campo cuando se utiliza en expresiones. | esriFieldTypeString |
| note | Muestra una nota en la pantalla; no acepta entradas. También puede visualizar cálculos ocultos. | esriFieldTypeString |
| geopunto | Captura una coordenada GPS dada. No puede cambiar el tipo de campo. | esriFieldTypeGeometry |
| geotrace | Captura una línea de un mapa. No puede cambiar el tipo de campo. | esriFieldTypeGeometry |
| geoshape | Captura un polígono de un mapa. No puede cambiar el tipo de campo. | esriFieldTypeGeometry |
| fecha | Entrada de fecha. | esriFieldTypeDate |
| hora | Entrada de hora. | esriFieldTypeString |
| dateTime | Acepta una entrada de fecha y hora. | esriFieldTypeDate |
| imagen | Tome una foto. | Adjunto |
| begin group | Inicia un grupo de preguntas. | No aplicable |
| end group | Finaliza un grupo de preguntas. | No aplicable |
| begin repeat | Inicia un conjunto de preguntas que se repiten. | No aplicable |
| end repeat | Finaliza un conjunto de preguntas que se repiten. | No aplicable |
| calcular | Realiza un cálculo con los valores del formulario. Este tipo de pregunta está oculto y no aparece en el formulario. | esriFieldTypeString |
| username2 | Cuando se inicia sesión en ArcGIS Online o ArcGIS Enterprise, este campo se rellena automáticamente con el nombre de usuario de la cuenta. Este tipo de pregunta está oculto y no aparece en el formulario. | esriFieldTypeString |
| email2 | Cuando se inicia sesión en ArcGIS Online o ArcGIS Enterprise, este campo se rellena automáticamente con la dirección de correo electrónico de la cuenta. Este tipo de pregunta está oculto y no aparece en el formulario. | esriFieldTypeString |
| hidden | Un campo que no aparece en el formulario. Use las columnas bind::esri:fieldType y bind::esri:fieldLength para especificar el esquema de datos. | esriFieldTypeString |
| barcode | Escanee un código de barras. | esriFieldTypeString |
| start | Fecha y hora de inicio de la encuesta. | esriFieldTypeDate |
| end | Fecha y hora de finalización de la encuesta. | esriFieldTypeDate |
| deviceid | Id. único generado por Survey123 que representa al dispositivo específico con el que se respondió a la encuesta. No es lo mismo que la Identidad Internacional de Equipo Móvil (IMEI, por sus siglas en inglés) del dispositivo móvil, ya que Survey123 se ejecuta en dispositivos que pueden no tener una IMEI. Este tipo de pregunta está oculto y no aparece en el formulario. | esriFieldTypeString |
| audio | Grabación de muestras de audio. | Adjunto |
| archivo1 | Carga un archivo en el dispositivo. | Adjunto |
1—En la actualidad, los tipos de pregunta de archivo y clasificación solo son compatibles con la aplicación de campo Survey123.
2—Una opción más flexible es utilizar la función pulldata("@property") para obtener los valores. Consulte Propiedades del dispositivo, el usuario y la encuesta.
En Survey123 Connect, prueba el ejemplo Tipos de preguntas para ver un formulario que incluye todos los tipos de preguntas compatibles con Survey123. Consulte la referencia Tipos de preguntas para saber cómo se representan estos tipos de preguntas en el diseñador web de Survey123.
Metadatos
XLSForm tiene las siguientes opciones de tipos de datos para la captura de metadatos:
| Tipo de metadatos | Descripción |
|---|---|
| start | Fecha y hora de inicio de la encuesta. |
| end | Fecha y hora de finalización de la encuesta. |
| username | Registra el nombre de usuario del usuario que tiene una sesión iniciada actualmente en ArcGIS Online o ArcGIS Enterprise. Este tipo de datos no acepta entradas. |
| Registra la dirección de correo electrónico del usuario que tiene la sesión iniciada actualmente en ArcGIS Online o ArcGIS Enterprise. Este tipo de datos no acepta entradas. | |
| deviceid | Id. único generado por Survey123 que representa al dispositivo específico con el que se respondió a la encuesta. No es lo mismo que la Identidad Internacional de Equipo Móvil (IMEI, por sus siglas en inglés) del dispositivo móvil, ya que Survey123 se ejecuta en dispositivos que pueden no tener una IMEI. |
Nota:
No se admiten los siguientes elementos de metadatos XLSForm: subscriberid, simserial y phonenumber.
Para capturar todos estos metadatos, agregue lo siguiente al principio de la encuesta:

ArcGIS Survey123 captura automáticamente las entradas de metadatos descritas anteriormente. No se representan como preguntas en el formulario, pero verá los valores una vez que se haya enviado la encuesta.
Si agrega los tipos start o end, ArcGIS Survey123 habilita automáticamente el tiempo en la capa de entidades para la encuesta. De esta forma, puede filtrar el contenido de la encuesta en función de la fecha en la que se enviaron los datos. Agregar las entradas start y end también resulta útil si se desea determinar con exactitud el tiempo que ha transcurrido desde que se abrió el formulario hasta que se marcó como completado.
Sugerencias
En ocasiones, se desea agregar una sugerencia a una pregunta del cuestionario para aclarar al usuario cómo se debe responder a la pregunta, pero no se quiere que la sugerencia forme parte de la pregunta. Puede agregar sugerencias a preguntas en XLSForm. Agregue una columna hint e incluya el mensaje de sugerencia. Vea el siguiente ejemplo:

Nota:
No se admiten sugerencias para las preguntas begin repeat ni begin group.
También puede agregar sugerencias de orientación a una pregunta con la columna guidance_hint. Las sugerencias de orientación indican al usuario cómo responder a una pregunta, pero están ocultas hasta que el usuario toca el botón de sugerencia de orientación que aparece junto a la sugerencia. Las sugerencias de orientación solo se pueden usar si ya existe una sugerencia para la pregunta.

Texto del marcador de posición
También se puede proporcionar texto de marcador de posición para preguntas que acepten una entrada escrita (como preguntas de texto, enteros y decimales y preguntas de selección con apariencia de autocompletar) definiendo el parámetro placeholderText en la columna body::esri:style. Al utilizar placeholderText=@[hint] o placeholderText=@[guidance_hint], la sugerencia o sugerencia de orientación se oculta y el texto de sugerencia se coloca dentro del área de entrada de la pregunta. El texto de marcador de posición aparece en el área de entrada si la pregunta está vacía.
Nota:
No se admite texto de marcador de posición en la aplicación web Survey123.
Actualizar plantilla
Nota:
Esta sección describe funciones que solo están disponibles en Survey123 Connect. Estas funciones no están disponibles en Survey123 Studio.
La Plantilla avanzada incluye todas las características de XLSForm admitidas en la aplicación de campo Survey123 y está disponible en el cuadro de diálogo Nueva encuesta en Survey123 Connect. Esta plantilla se actualiza regularmente para agregar nuevas funcionalidades y mejorar la experiencia de creación de encuestas. Aunque puede seguir usando versiones anteriores de la plantilla sin problemas, es posible que desee actualizar sus encuestas existentes a la plantilla de XLSForm más reciente para aprovechar los cambios más recientes.
La herramienta Actualizar plantilla XLSForm actualiza el XLSForm existente para una encuesta a la versión más reciente de la plantilla avanzada. Para ello, se copia el contenido de las hojas de cálculo survey, choices y settings en sus respectivas filas y columnas de la nueva plantilla. Todas las columnas que haya agregado también se copian a la nueva plantilla, así como a la hoja de cálculo external_choices si está usando selecciones externas.
Para ejecutar la herramienta, debe configurar un entorno de Python en Survey123 Connect. Para obtener más información, consulte Configurar Python.
En Survey123 Connect, abra la encuesta que desee actualizar. Haga clic en Herramientas y en Actualizar plantilla XLSForm. Un cuadro de diálogo muestra mensajes mientras se ejecuta la herramienta. Una vez completado el proceso, el archivo .xlsx de la carpeta de la encuesta se actualiza con la plantilla más reciente y la vista previa del formulario en Survey123 Connect se vuelve a cargar. Si se detecta un error mientras se ejecuta la herramienta, el XLSForm existente se conserva.
Nota:
El XLSForm de la encuesta debe ser un archivo .xlsx. La herramienta Actualizar plantilla XLSForm no se puede ejecutar en archivos .xls.
Se recomienda verificar que los estilos de fuente, las columnas, la validación de datos y el formato de celda del XLSForm original estén presentes en el XLSForm actualizado. La herramienta crea una copia de seguridad del XLSForm existente y un archivo de registro en C:\Users\<username>\ArcGIS\My Survey Designs\<surveyName>\debug\template_updater. Para restablecer una encuesta desde una copia de seguridad, copie el archivo .xlsx de la carpeta template_updater en la carpeta raíz de la encuesta. Elimine el XLSForm existente y cambie el nombre de la copia de seguridad para que coincida con el original.
Nota:
El color de relleno de la celda de la primera columna de cada fila se aplica a toda la fila de la plantilla actualizada.
En el caso de las encuestas multilingües, las columnas de idioma predeterminado, como label::language (xx) y hint::language (xx), se excluirán de la plantilla actualizada.
Caracteres especiales
Los nombres de las preguntas y de las opciones no pueden incluir caracteres especiales, como espacios, comas, guiones, paréntesis, llaves o caracteres como $, % y #. Es importante que los nombres de opciones de las preguntas select_multiple no contengan espacios ni comas.