Generando archivos de Excel con Xamarin.Forms
Esta publicación es parte del Calendario de Adviento Xamarin, una iniciativa liderada por Luis Beltrán. Revisa este enlace para conocer más artículos interesantes sobre Xamarin (y tecnologías afines) publicados por varios miembros de la comunidad.
Cuando desarrollamos apps empresariales, uno de los requerimientos más comunes es la exportación de información (sobre todo listas de elementos) en formato PDF o archivo de Excel. Consideremos, por ejemplo, que deseamos generar una hoja de cálculo que contenga los datos de una colección:

Como referencia, mostraré la estructura actual del proyecto de código compartido:

Pongamos manos a la obra:
Paso 1. Agrega el paquete Nuget DocumentFormat.OpenXml a todos los proyectos de tu solución. Este plugin es el Open XML SDK que provee a los desarrolladores de herramientas para trabajar con documentos de Word, Excel y PowerPoint en sus proyectos de software:

Paso 2. En la carpeta Models agrega una nueva clase llamada ExcelData con el código mostrado a continuación:
Paso 3. En la carpeta Services agrega una clase con el nombre ExcelService con el código mostrado. Esta es la parte principal, pues se encarga de crear el archivo e insertar la información:
Paso 4: Ahora vamos a incorporarlo en nuestra aplicación. En tu ViewModel crea una instancia del servicio ExcelService que acabas de crear junto con un comando que al ser ejecutado exporte la lista de datos a Excel llamando los métodos GenerateExcel e InsertDataIntoSheet. Una vez creado el archivo utilizamos Launcher (de Xamarin.Essentials) para abrir la aplicación por defecto que pueda abrir hojas de cálculo. El código relevante se muestra a continuación:
Paso 5. Por último, vamos a agregar un botón en nuestra View principal para ejecutar el comando recién agregado en nuestro ViewModel.
¡Y eso es todo! Muy fácil, ¿verdad? Verifiquemos que la funcionalidad añadida funciona correctamente:


El código fuente de esta aplicación está disponible en mi repositorio de GitHub.
Como puedes ver el SDK de Open XML es muy poderoso y simplifica la generación de documentos de Excel; como mencioné anteriormente, también tiene capacidades de trabajar con documentos de Word y PowerPoint, así que es probable que en una futura entrega te muestre cómo generar un documento de texto o una presentación de diapositivas desde Xamarin.Forms (por supuesto, también puedes hacerlo desde cualquier app que corra bajo .NET Standard)
Espero que esta publicación te haya sido de utilidad, no olvides compartirla en tus redes sociales, tal vez le sirva a alguien más =)
No olvides seguir el resto de las interesantes publicaciones del Calendario de Adviento Xamarin. También puedes seguir la conversación en Twitter con el hashtag #AdvientoXamarin y en la Comunidad Xamarin en Español.
¡Gracias por la visita y hasta la próxima!
Luis
Referencias (y agradecimientos):
- La interfaz de usuario es tomada de BookSwap – A Xamarin.Forms UI Challenge, desarrollada por Kym Phillpotts.
- La idea de Xamarin y Excel está basada en la publicación .Net Standard 2.0 create Microsoft Office documents in Xamarin Forms de Glenn Versweyveld