# Comunicación con hojas de cálculo de Excel

Para la conexión a **Excel** (entrada o salida de datos), AnyLogic ofrece varias alternativas. Básicamente, hay dos opciones indicadas para principiantes:

* Importar los datos de la hoja de cálculo de Excel a la base de datos de AnyLogic;
* o conecte directamente la hoja de cálculo de Excel como un objeto dentro de AnyLogic.

## Importando datos de Excel a la base de datos de AnyLogic

&#x20;En este caso, los datos de su hoja de cálculo de Excel deben tener una "cara tabular", porque en AnyLogic, cada carpeta de Excel se importará a una tabla de banco y \[¡importante!] la **primera línea** de la carpeta se utilizará como título de las columnas de la tabla. Por ejemplo, considere la siguiente hoja de cálculo de Excel:

![](https://lh3.googleusercontent.com/dsD3FmbpthzhHc0ptAQLU7JIFCrbhEZNfAv9o1SIlsGAkNb5EQAjTvvE4V5ufi9kEsKVLUXuxf3E7uTh7IoMbv5CxEFxeIGVIKcVYwplT5k0-aVHeVAxszT1WiPvuxiDOyC-AEzm)

(Tenga en cuenta que la primera fila está llena con los encabezados de la tabla. De lo contrario, habría un error al leer el archivo).&#x20;

Para importar la hoja de cálculo a la base de datos, siga los pasos:

* Haga clic con el segundo botón del ratón sobre el icono de la **Database**, en la pestaña de Projects y seleccione la opción **Import database tables**;
* Busque su archivo de Excel (o tabla de base de datos);
* Seleccione, si corresponde, las carpetas que desea importar y presione el botón **OK**.

![](https://lh5.googleusercontent.com/I2-SsvbA4OHOeSZ8dj09IS0xfGQmirZKneXKjc2nAu7l3dG4hsVY0a3GYotV3iP8IiEA_Ecf5kfKELtEKAxe5VZy83zcu_x7FqykFNStG7SormSWqaJYPnCgYW5WygI_k2FlDkft)

En el ejemplo, la hoja de cálculo se importó como una tabla y, con dos clics de su icono, puede ver los datos almacenados:

![](https://lh3.googleusercontent.com/fmeyN69qH1-KbK1GN-CzCloWN2BOFi8LLtPPERpwhJzbFROd6sktq6pFefYtOkYXnGpWmsp3_uT90a_DCRoUYqmvmlF4RvbxAvX1PFk8Z5R_NGVAcoKPpXUgLb4nC4EZzF5Kox_a)

El uso de los datos de la tabla se puede hacer directamente mediante el comando **Insert Database Query**.&#x20;

Por ejemplo, vamos a utilizar la "Tasa de llegada del cliente", almacenada en la base de datos, como un valor de entrada para el parámetro **Arrival rate** de bloque de **llegadas**. En este caso, debe:

* Seleccionar el campo donde se completará el valor (en el caso **Arrival rate**, desde el bloque de llegadas);
* Haga clic en el icono **Insert Database Query** (tenga en cuenta que solo está activo cuando ingresa al campo **Arrival rate**);
* Seleccione la tabla con los datos en **Table**;
* Cree una condición de búsqueda (observe cómo AnyLogic admite el proceso, abriendo opciones automáticamente).

![](https://lh6.googleusercontent.com/bVZ8j7U-ypVcJIf9YA8f7nr8_DU2ktqz9HDaKSdPIpXwpUvqxS22RDcspZwhP-3Tp4Gt2er7Q2AWa2pKDIaPlNcbte8EgmxgiEdas1sfJL9IekMCQTpFsClzBNXEHyGVTYBc7IBh)

¿Necesita importar un horario de llegada que cambie su tarifa a intervalos a lo largo del día? AnyLogic tiene una [forma genial de hacer esto.](https://help.anylogic.com/topic/com.anylogic.help/html/data/schedule.html?resultof=%22%73%63%68%65%64%75%6c%65%22%20%22%73%63%68%65%64%75%6c%22%20)

## Conecte directamente la hoja de cálculo de Excel como un objeto dentro del modelo

En este caso, debe traer Excel al modelo, usando la paleta **Connectivity**:

* Arrastre el bloque **Excel File** al modelo;
* Seleccione la hoja de cálculo deseada en la ventana **Properties**.

![](https://lh3.googleusercontent.com/XCHSKQWCrM1TJ1IFeQpQkOMmt9X4m01HTvIZjX7zKnF5chUqt2pDKLjTAnJCycRIueBSiwtWOXTpKHprWYCuj7Y5CGeJWvcGAjJHAD3boOC9i2W2tJmQCir_L6tdyOitvmiuoLXI)

Para importar/exportar valores entre la hoja de cálculo y el modelo, hay muchas funciones, pero las principales son:

* `getCellNumericValue(String sheetName, int rowIndex, int columnIndex)`: sheetName es el nombre de la hoja de cálculo (por ejemplo, "Inputs"), mientras que rowIndex y columnIndex son los índices de fila/columna de la celda contados desde uno;
* `getCellDateValue(String sheetName, int rowIndex, int columnIndex)`: igual que el anterior, pero para una fecha;
* `setCellValue(valor, String sheetName, int rowIndex, int columnIndex)`: exporta un valor a Excel. Por ejemplo: `excelFile.setCellValue (2.0, "Outputs", 10, 2);`  exporta el valor 2.0 a la celda de la fila 10 y columna 2 de la carpeta "Salidas";
* `writeDataSet(DataSet dataset, String sheetName, int rowIndex, int columnIndex)`: Igual que el anterior, pero para un **Dataset** completo.

Todos los comandos posibles con hojas de cálculo están bien documentados en [la Ayuda de AnyLogic](https://help.anylogic.com/topic/com.anylogic.help/html/connectivity/excel-file.html?resultof=%22%65%78%63%65%6c%22%20%22%66%69%6c%65%22%20) y hay un modelo de ejemplo absolutamente completo en AnyLogic (busque “**Reading and Writing Excel Files**” en el menú desplegable **Help**, opción **Example Models**) o puede ejecutar [su versión en la nube aquí](https://cloud.anylogic.com/model/99d9f196-17e7-47c3-9b28-63a6f23b0dad?mode=SETTINGS).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tutorial.anylogicbrasil.com.br/tutorial-es/comunicacao-com-planilhas-excel.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
