Ir al contenido

Write Excel Range

Tipo: excel-write-range  ·  Paquete: Excel Activities v1.0.6  ·  Salida: —

Escribe valores en la hoja a partir de una celda concreta, sin tratar ninguna fila como encabezado. Recibe una DataTable, una sola fila como DataRow o una lista de filas (desde la versión 1.0.6) y escribe sus valores de datos —no los nombres de columna. Úsala cuando quieres colocar datos en una posición exacta —por ejemplo, rellenar una plantilla de Excel que ya tiene su propio formato y títulos.

Es casi idéntica a Append Excel Range; la única diferencia es dónde escribe: Write Range, en la celda que tú indicas (startCell); Append Range, automáticamente debajo de los datos existentes.

Coloca los valores de data en la hoja empezando en startCell y extendiéndose hacia abajo y a la derecha. No limpia la hoja ni escribe encabezados: sobrescribe solo las celdas que ocupa y conserva su formato (por eso encaja con plantillas). Acepta session o path — ver los dos modos.

  • Si el archivo o la hoja no existen, se crean.
  • Los números, fechas y booleanos se guardan con su tipo; los textos, como texto. Los valores DBNull o nulos no se escriben: esas celdas conservan lo que tenían. Ver cómo llegan los datos.
  • En modo rápido guarda el archivo al terminar; en modo sesión, al hacer Excel Save o Excel Close.
ParámetroTipoPor defectoDescripción
dataDataTable | DataRow | List<List<object>> | List<object>—La DataTable a escribir, un DataRow para una sola fila, una lista de filas (arr(arr("a", 1), arr("b", 2)), o un arreglo JSON de arreglos) o una sola fila como lista (arr("a", 1)). Se escriben los valores, no los encabezados. Las listas se aceptan desde la versión 1.0.6.
startCellstring—Celda superior izquierda donde empezar, ej. "B2".
ParámetroTipoPor defectoDescripción
sessionZoanExcelSession—Sesión de Excel Open (en vez de path).
pathstring—Ruta al .xlsx (se crea si no existe; requerido si no hay sesión).
sheetstring | int—Nombre o índice de la hoja; se crea si no existe. Si se omite, la primera hoja (o "Sheet1" en un libro nuevo).

Esta actividad no devuelve ningún valor.

MensajeCausa y solución
'data' es obligatorio.data está vacío o la expresión dio null.
'startCell' es obligatorio.Falta startCell.
'data' debe ser un DataTable, un DataRow, una lista de filas (List<List<object>>) o una sola fila (List<object>).data es otra cosa (por ejemplo, un texto o un diccionario).
'data' mezcla filas (listas) con valores sueltos: pasa una lista de filas o una sola fila.La lista tiene a la vez filas y valores sueltos, como arr(arr("a", 1), "b"). Pon cada valor dentro de una fila.
Indica 'session' o 'path'.Falta session y path.
'…' is not A1 address or workbook named range.startCell no es una dirección válida.
The process cannot access the file '…' because it is being used by another process.El archivo está abierto en otro programa al guardar. Ciérralo o reintenta con Retry.

Volcar una DataTable de datos a partir de una celda concreta de una plantilla:

Excel Open path = asset("plantilla.xlsx") → output: libro
Write Excel Range session = libro startCell = "B5" data = ventas // una DataTable obtenida antes
Write Excel Cell session = libro cell = "C2" value = "Reporte " + mes
Excel Save session = libro savePath = "C:/reportes/" + mes + ".xlsx"
Excel Close session = libro save = false

save = false en el cierre deja la plantilla original sin tocar: los datos solo quedan en la copia guardada con savePath.