Excel Online — Read sheet
Excel Online — Read sheet
Sección titulada «Excel Online — Read sheet»Tipo: excelonline-read-sheet · Paquete: Excel Online v1.0.4 · Salida: DataTable
Lee todos los datos de una hoja (su rango usado) y los devuelve como DataTable. Es la forma más cómoda de cargar una hoja entera sin tener que indicar el rango.
Cómo funciona
Sección titulada «Cómo funciona»Opera sobre la sesión creada con Excel Online — Connect. Pásala en el parámetro session, o coloca esta actividad dentro del body de Excel Online — Connect para heredarla automáticamente.
Pide a Microsoft 365 el rango usado de la hoja y lo convierte en tabla. Con has-headers, la primera fila se usa como nombres de columna; si no, las columnas se llaman Column1, Column2, …
Ten en cuenta:
- El rango usado empieza en la primera celda con contenido o formato, que no siempre es
A1: si los datos empiezan enB3, la tabla empieza ahí. Las celdas que solo tienen formato (bordes, color) también cuentan como usadas y pueden aparecer como filas o columnas vacías. - Todas las columnas de la tabla son de texto: los números y booleanos llegan convertidos a
string(con el separador decimal de la configuración regional del robot) y las fechas, como su número de serie de Excel ("45458"). Convierte conConvert.ToDecimal(...)oDateTime.FromOADate(...)cuando lo necesites. - Las celdas vacías llegan como texto vacío. Si la primera fila tiene una celda vacía, esa columna toma un nombre automático.
- Si la hoja está vacía, Microsoft 365 informa
A1como rango usado: conhas-headers = trueobtienes una tabla sin filas.
Es solo lectura: no modifica el libro.
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
sheet | string | — | Nombre de la hoja, tal como aparece en la pestaña del libro. |
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
session | ZoanExcelOnlineSession | — | Sesión de Excel Online — Connect. Dentro del body de Connect se hereda. |
has-headers | bool | false | Si es true, la primera fila son los nombres de columna; si no, columnas Column1, Column2, … y la primera fila se trata como datos. |
Devuelve un DataTable con todos los datos de la hoja: una fila por fila de Excel (sin la de encabezados si has-headers = true) y tantas columnas como el ancho del rango usado. Recórrelo con un For each y accede por nombre de columna (fila["Cliente"]), o pásalo a otras actividades de DataTable o de escritura. El número de filas está en tabla.Rows.Count.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
No hay una sesión de Excel Online disponible. Indica 'session' desde una actividad excelonline-connect o coloca esta actividad dentro del cuerpo de la actividad Connect para que herede la sesión automáticamente. | La actividad está fuera del body de Connect y no recibió session. Colócala dentro del body o pasa session = libro. |
'sheet' es obligatorio. | sheet está vacío o la expresión dio null. |
itemNotFound (Microsoft Graph, 404) | No existe una hoja con ese nombre. Revisa el nombre con Get sheet names. |
A column named '…' already belongs to this DataTable. | Con has-headers = true, dos encabezados de la primera fila tienen el mismo nombre. Renómbralos en el libro o lee sin encabezados. |
Para reintentar ante límites o caídas temporales de Microsoft 365 (429, 503), usa Retry.
Ejemplo
Sección titulada «Ejemplo»Excel Online — Connect credential = credential("m365-finanzas") path = "Reportes/Clientes.xlsx" └─ body: Excel Online — Read sheet sheet = "Clientes" has-headers = true → output: clientes For each cliente in clientes └─ Log message = cliente["Nombre"] + " - " + cliente["Correo"]Actividades relacionadas
Sección titulada «Actividades relacionadas»- Excel Online — Read range — leer solo un rango.
- Excel Online — Write sheet — volcar datos a una hoja.
- Excel Online — Get sheet names — listar las hojas del libro.
- Todas las actividades de Excel Online