Comunicación con hojas de cálculo de Excel
Last updated
Last updated
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.
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:
(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).
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.
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:
El uso de los datos de la tabla se puede hacer directamente mediante el comando Insert Database Query.
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).
¿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.
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.
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 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í.