Write Excel Range
Write Excel Range
Sección titulada «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.
Cómo funciona
Sección titulada «Cómo funciona»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
DBNullo 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ámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
data | DataTable | 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. |
startCell | string | — | Celda superior izquierda donde empezar, ej. "B2". |
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
session | ZoanExcelSession | — | Sesión de Excel Open (en vez de path). |
path | string | — | Ruta al .xlsx (se crea si no existe; requerido si no hay sesión). |
sheet | string | 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.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa 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. |
Ejemplo
Sección titulada «Ejemplo»Volcar una DataTable de datos a partir de una celda concreta de una plantilla:
Excel Open path = asset("plantilla.xlsx") → output: libroWrite Excel Range session = libro startCell = "B5" data = ventas // una DataTable obtenida antesWrite Excel Cell session = libro cell = "C2" value = "Reporte " + mesExcel Save session = libro savePath = "C:/reportes/" + mes + ".xlsx"Excel Close session = libro save = falsesave = false en el cierre deja la plantilla original sin tocar: los datos solo quedan en la copia guardada con savePath.
Actividades relacionadas
Sección titulada «Actividades relacionadas»- Write Excel Sheet — escribir una DataTable con encabezados.
- Write Excel Cell — escribir una sola celda.
- Read Excel Range — leer un rango a una DataTable.