Ir al contenido

Excel Open (Session)

Tipo: excel-open  ·  Paquete: Excel Activities v1.0.6  ·  Salida: ZoanExcelSession

Abre un libro de Excel y devuelve una sesión (ZoanExcelSession) que compartes con las demás actividades de Excel. Es el inicio del modo sesión, recomendado cuando vas a hacer varias operaciones sobre el mismo archivo: abrirlo una sola vez es mucho más rápido que abrir y cerrar en cada paso.

Si el archivo no existe, empieza con un libro nuevo que se crea en disco al guardar.

Carga el libro en memoria. Tienes dos formas de uso:

  • Con variable de salida: guardas la sesión en una variable (ej. libro), la pasas a las actividades con session = libro, y al final cierras con Excel Close.
  • Con body: las actividades dentro del sub-flujo trabajan sobre el libro sin indicar session ni path y, al terminar, este se guarda y se cierra automáticamente. No necesitas un Excel Close.

Detalles que conviene saber:

  • Mientras la sesión está abierta, los cambios viven en memoria; llegan al disco con Excel Save, Excel Close o al terminar el body.
  • Con body, si una actividad del sub-flujo falla, el libro se cierra sin guardar y el error sigue su curso (lo puedes capturar con un Try / Catch alrededor). Si quieres conservar el avance parcial, guarda con Excel Save en los puntos clave.
  • Puedes anidar un Excel Open dentro del body de otro: las actividades usan el libro del body más cercano, y al salir se recupera el anterior.
  • Formatos: .xlsx, .xlsm, .xltx y .xltm. Un .xls o .csv existente falla al abrir — ver formatos.
ParámetroTipoPor defectoDescripción
pathstring—Ruta del archivo .xlsx. Si no existe, se crea al guardar. Admite expresiones (ej. asset("datos.xlsx")).

Ninguno.

Opcional. Actividades que se ejecutan con este libro. Al terminar sin errores, el libro se guarda y se cierra. Si se omite, la actividad devuelve la sesión como salida y debes cerrarla tú con Excel Close.

Sin body, devuelve un ZoanExcelSession: pásalo como session a las demás actividades de Excel. Con body, la actividad no devuelve ningún valor (la sesión solo existe dentro del sub-flujo).

MensajeCausa y solución
'path' es obligatorio.path está vacío o la expresión dio null.
Extension 'xls' is not supported. Supported extensions are '.xlsx', '.xlsm', '.xltx' and '.xltm'.El archivo es .xls, .csv u otro formato que el paquete no abre. Conviértelo a .xlsx.
The process cannot access the file '…' because it is being used by another process.Otro programa tiene el archivo bloqueado. Ciérralo o reintenta con Retry.
Workbooks need at least one worksheet.El archivo no existía y se intentó guardar (al cerrar o al terminar el body) sin haber escrito nada: un libro necesita al menos una hoja. Escribe algo antes de guardar, o cierra con save = false.

Con variable de salida:

Excel Open path = asset("reporte.xlsx") → output: libro
Write Excel Sheet session = libro sheet = "Datos" data = tabla
Write Excel Cell session = libro sheet = "Resumen" cell = "B2" value = total
Excel Close session = libro

Con body (sin session en las actividades de dentro):

Excel Open path = "C:/reportes/ventas.xlsx"
└─ body:
Read Excel Sheet sheet = "Pedidos" → output: pedidos
Write Excel Cell sheet = "Resumen" cell = "B2" value = rowCount(pedidos)