> For the complete documentation index, see [llms.txt](https://tutorial.anylogicbrasil.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tutorial.anylogicbrasil.com.br/tutorial-es/comunicacao-com-planilhas-excel.md).

# 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).
