Crear, leer y editar archivos de Excel en .NET MAUI
Introducción
Esta guía explica cómo crear y leer archivos de Excel en aplicaciones .NET MAUI para Windows usando IronXL. Comencemos.
IronXL: Biblioteca de Excel para C
IronXL es una biblioteca de C# .NET para leer, escribir y manipular archivos de Excel. Permite a los usuarios crear documentos de Excel desde cero, incluyendo el contenido y la apariencia de Excel, así como metadatos como el título y el autor. La biblioteca también admite características de personalización para la interfaz de usuario, como establecer márgenes, orientación, tamaño de página, imágenes, etc. No requiere ningún marco externo, integración de plataforma u otras bibliotecas de terceros para generar archivos de Excel. Es auto contenido e independiente.
Cómo leer archivos de Excel en .NET MAUI
- Instalar la biblioteca C# para leer archivos de Excel
- Asegúrate de que todos los paquetes necesarios para ejecutar aplicaciones MAUI estén instalados
- Crea archivos Excel con APIs intuitivas en MAUI
- Cargar y ver archivos Excel en el navegador
- Guardar y exportar archivos Excel
Instalar IronXL
Comience a usar IronXL en su proyecto hoy con una prueba gratuita.
Para instalar IronXL, puedes utilizar la consola del Administrador de Paquetes NuGet en Visual Studio. Abre la consola e ingresa el siguiente comando para instalar la biblioteca IronXL.
Install-Package IronXL.Excel
Creación de archivos de Excel en C# con IronXL
Diseñar el frontend de la aplicación
Abre la página XAML llamada MainPage.xaml y reemplaza el código en ella con el siguiente fragmento de código.
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MAUI_IronXL.MainPage">
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="Welcome to .NET Multi-platform App UI"
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Welcome Multi-platform App UI"
FontSize="18"
HorizontalOptions="Center" />
<Button
x:Name="createBtn"
Text="Create Excel File"
SemanticProperties.Hint="Click on the button to create Excel file"
Clicked="CreateExcel"
HorizontalOptions="Center" />
<Button
x:Name="readExcel"
Text="Read and Modify Excel file"
SemanticProperties.Hint="Click on the button to read Excel file"
Clicked="ReadExcel"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage><?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MAUI_IronXL.MainPage">
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="Welcome to .NET Multi-platform App UI"
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Welcome Multi-platform App UI"
FontSize="18"
HorizontalOptions="Center" />
<Button
x:Name="createBtn"
Text="Create Excel File"
SemanticProperties.Hint="Click on the button to create Excel file"
Clicked="CreateExcel"
HorizontalOptions="Center" />
<Button
x:Name="readExcel"
Text="Read and Modify Excel file"
SemanticProperties.Hint="Click on the button to read Excel file"
Clicked="ReadExcel"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>El código anterior crea el diseño para nuestra aplicación básica .NET MAUI. Crea una etiqueta y dos botones. Un botón es para crear un archivo de Excel, y el segundo botón proporciona soporte para leer y modificar el archivo de Excel. Ambos elementos están anidados en un elemento padre VerticalStackLayout para que aparezcan alineados verticalmente en todos los dispositivos compatibles.
Crear archivos de Excel
Es hora de crear el archivo de Excel usando IronXL. Abre el archivo MainPage.xaml.cs y escribe el siguiente método en el archivo.
private void CreateExcel(object sender, EventArgs e)
{
// Create a new Workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Create a Worksheet
var sheet = workbook.CreateWorkSheet("2022 Budget");
// Set cell headers
sheet["A1"].Value = "January";
sheet["B1"].Value = "February";
sheet["C1"].Value = "March";
sheet["D1"].Value = "April";
sheet["E1"].Value = "May";
sheet["F1"].Value = "June";
sheet["G1"].Value = "July";
sheet["H1"].Value = "August";
// Fill worksheet cells with random values
Random r = new Random();
for (int i = 2; i <= 11; i++)
{
sheet["A" + i].Value = r.Next(1, 1000);
sheet["B" + i].Value = r.Next(1000, 2000);
sheet["C" + i].Value = r.Next(2000, 3000);
sheet["D" + i].Value = r.Next(3000, 4000);
sheet["E" + i].Value = r.Next(4000, 5000);
sheet["F" + i].Value = r.Next(5000, 6000);
sheet["G" + i].Value = r.Next(6000, 7000);
sheet["H" + i].Value = r.Next(7000, 8000);
}
// Apply formatting (background and border)
sheet["A1:H1"].Style.SetBackgroundColor("#d3d3d3");
sheet["A1:H1"].Style.TopBorder.SetColor("#000000");
sheet["A1:H1"].Style.BottomBorder.SetColor("#000000");
sheet["H2:H11"].Style.RightBorder.SetColor("#000000");
sheet["H2:H11"].Style.RightBorder.Type = IronXL.Styles.BorderType.Medium;
sheet["A11:H11"].Style.BottomBorder.SetColor("#000000");
sheet["A11:H11"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Medium;
// Apply formulas
decimal sum = sheet["A2:A11"].Sum();
decimal avg = sheet["B2:B11"].Avg();
decimal max = sheet["C2:C11"].Max();
decimal min = sheet["D2:D11"].Min();
sheet["A12"].Value = "Sum";
sheet["B12"].Value = sum;
sheet["C12"].Value = "Avg";
sheet["D12"].Value = avg;
sheet["E12"].Value = "Max";
sheet["F12"].Value = max;
sheet["G12"].Value = "Min";
sheet["H12"].Value = min;
// Save and open the Excel file
SaveService saveService = new SaveService();
saveService.SaveAndView("Budget.xlsx", "application/octet-stream", workbook.ToStream());
}private void CreateExcel(object sender, EventArgs e)
{
// Create a new Workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Create a Worksheet
var sheet = workbook.CreateWorkSheet("2022 Budget");
// Set cell headers
sheet["A1"].Value = "January";
sheet["B1"].Value = "February";
sheet["C1"].Value = "March";
sheet["D1"].Value = "April";
sheet["E1"].Value = "May";
sheet["F1"].Value = "June";
sheet["G1"].Value = "July";
sheet["H1"].Value = "August";
// Fill worksheet cells with random values
Random r = new Random();
for (int i = 2; i <= 11; i++)
{
sheet["A" + i].Value = r.Next(1, 1000);
sheet["B" + i].Value = r.Next(1000, 2000);
sheet["C" + i].Value = r.Next(2000, 3000);
sheet["D" + i].Value = r.Next(3000, 4000);
sheet["E" + i].Value = r.Next(4000, 5000);
sheet["F" + i].Value = r.Next(5000, 6000);
sheet["G" + i].Value = r.Next(6000, 7000);
sheet["H" + i].Value = r.Next(7000, 8000);
}
// Apply formatting (background and border)
sheet["A1:H1"].Style.SetBackgroundColor("#d3d3d3");
sheet["A1:H1"].Style.TopBorder.SetColor("#000000");
sheet["A1:H1"].Style.BottomBorder.SetColor("#000000");
sheet["H2:H11"].Style.RightBorder.SetColor("#000000");
sheet["H2:H11"].Style.RightBorder.Type = IronXL.Styles.BorderType.Medium;
sheet["A11:H11"].Style.BottomBorder.SetColor("#000000");
sheet["A11:H11"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Medium;
// Apply formulas
decimal sum = sheet["A2:A11"].Sum();
decimal avg = sheet["B2:B11"].Avg();
decimal max = sheet["C2:C11"].Max();
decimal min = sheet["D2:D11"].Min();
sheet["A12"].Value = "Sum";
sheet["B12"].Value = sum;
sheet["C12"].Value = "Avg";
sheet["D12"].Value = avg;
sheet["E12"].Value = "Max";
sheet["F12"].Value = max;
sheet["G12"].Value = "Min";
sheet["H12"].Value = min;
// Save and open the Excel file
SaveService saveService = new SaveService();
saveService.SaveAndView("Budget.xlsx", "application/octet-stream", workbook.ToStream());
}Private Sub CreateExcel(ByVal sender As Object, ByVal e As EventArgs)
' Create a new Workbook
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
' Create a Worksheet
Dim sheet = workbook.CreateWorkSheet("2022 Budget")
' Set cell headers
sheet("A1").Value = "January"
sheet("B1").Value = "February"
sheet("C1").Value = "March"
sheet("D1").Value = "April"
sheet("E1").Value = "May"
sheet("F1").Value = "June"
sheet("G1").Value = "July"
sheet("H1").Value = "August"
' Fill worksheet cells with random values
Dim r As New Random()
For i As Integer = 2 To 11
sheet("A" & i).Value = r.Next(1, 1000)
sheet("B" & i).Value = r.Next(1000, 2000)
sheet("C" & i).Value = r.Next(2000, 3000)
sheet("D" & i).Value = r.Next(3000, 4000)
sheet("E" & i).Value = r.Next(4000, 5000)
sheet("F" & i).Value = r.Next(5000, 6000)
sheet("G" & i).Value = r.Next(6000, 7000)
sheet("H" & i).Value = r.Next(7000, 8000)
Next i
' Apply formatting (background and border)
sheet("A1:H1").Style.SetBackgroundColor("#d3d3d3")
sheet("A1:H1").Style.TopBorder.SetColor("#000000")
sheet("A1:H1").Style.BottomBorder.SetColor("#000000")
sheet("H2:H11").Style.RightBorder.SetColor("#000000")
sheet("H2:H11").Style.RightBorder.Type = IronXL.Styles.BorderType.Medium
sheet("A11:H11").Style.BottomBorder.SetColor("#000000")
sheet("A11:H11").Style.BottomBorder.Type = IronXL.Styles.BorderType.Medium
' Apply formulas
Dim sum As Decimal = sheet("A2:A11").Sum()
Dim avg As Decimal = sheet("B2:B11").Avg()
Dim max As Decimal = sheet("C2:C11").Max()
Dim min As Decimal = sheet("D2:D11").Min()
sheet("A12").Value = "Sum"
sheet("B12").Value = sum
sheet("C12").Value = "Avg"
sheet("D12").Value = avg
sheet("E12").Value = "Max"
sheet("F12").Value = max
sheet("G12").Value = "Min"
sheet("H12").Value = min
' Save and open the Excel file
Dim saveService As New SaveService()
saveService.SaveAndView("Budget.xlsx", "application/octet-stream", workbook.ToStream())
End SubEste código fuente crea un libro de trabajo y una hoja de trabajo usando IronXL, establece valores de celdas y da formato a las celdas. También demuestra cómo usar fórmulas de Excel con IronXL.
Ver archivos de Excel en el navegador
Abre el archivo MainPage.xaml.cs y escribe el siguiente código.
private void ReadExcel(object sender, EventArgs e)
{
// Store the path of the file
string filepath = @"C:\Files\Customer Data.xlsx";
WorkBook workbook = WorkBook.Load(filepath);
WorkSheet sheet = workbook.WorkSheets.First();
// Calculate the sum of a range
decimal sum = sheet["B2:B10"].Sum();
// Modify a cell value and apply styles
sheet["B11"].Value = sum;
sheet["B11"].Style.SetBackgroundColor("#808080");
sheet["B11"].Style.Font.SetColor("#ffffff");
// Save and open the Excel file
SaveService saveService = new SaveService();
saveService.SaveAndView("Modified Data.xlsx", "application/octet-stream", workbook.ToStream());
DisplayAlert("Notification", "Excel file has been modified!", "OK");
}private void ReadExcel(object sender, EventArgs e)
{
// Store the path of the file
string filepath = @"C:\Files\Customer Data.xlsx";
WorkBook workbook = WorkBook.Load(filepath);
WorkSheet sheet = workbook.WorkSheets.First();
// Calculate the sum of a range
decimal sum = sheet["B2:B10"].Sum();
// Modify a cell value and apply styles
sheet["B11"].Value = sum;
sheet["B11"].Style.SetBackgroundColor("#808080");
sheet["B11"].Style.Font.SetColor("#ffffff");
// Save and open the Excel file
SaveService saveService = new SaveService();
saveService.SaveAndView("Modified Data.xlsx", "application/octet-stream", workbook.ToStream());
DisplayAlert("Notification", "Excel file has been modified!", "OK");
}Private Sub ReadExcel(ByVal sender As Object, ByVal e As EventArgs)
' Store the path of the file
Dim filepath As String = "C:\Files\Customer Data.xlsx"
Dim workbook As WorkBook = WorkBook.Load(filepath)
Dim sheet As WorkSheet = workbook.WorkSheets.First()
' Calculate the sum of a range
Dim sum As Decimal = sheet("B2:B10").Sum()
' Modify a cell value and apply styles
sheet("B11").Value = sum
sheet("B11").Style.SetBackgroundColor("#808080")
sheet("B11").Style.Font.SetColor("#ffffff")
' Save and open the Excel file
Dim saveService As New SaveService()
saveService.SaveAndView("Modified Data.xlsx", "application/octet-stream", workbook.ToStream())
DisplayAlert("Notification", "Excel file has been modified!", "OK")
End SubEl código fuente carga el archivo de Excel, aplica una fórmula en un rango de celdas, y lo da formato con fondos y colores de texto personalizados. Posteriormente, el archivo de Excel modificado se guarda y se muestra una notificación.
Guardar archivos de Excel
En esta sección, definimos la clase SaveService que guardará nuestros archivos de Excel en el almacenamiento local.
Crea una clase "SaveService.cs" y escribe el siguiente código:
using System;
using System.IO;
namespace MAUI_IronXL
{
public partial class SaveService
{
public partial void SaveAndView(string fileName, string contentType, MemoryStream stream);
}
}using System;
using System.IO;
namespace MAUI_IronXL
{
public partial class SaveService
{
public partial void SaveAndView(string fileName, string contentType, MemoryStream stream);
}
}Imports System
Imports System.IO
Namespace MAUI_IronXL
Partial Public Class SaveService
Public Partial Private Sub SaveAndView(ByVal fileName As String, ByVal contentType As String, ByVal stream As MemoryStream)
End Sub
End Class
End NamespaceA continuación, crea una clase llamada "SaveWindows.cs" dentro de la carpeta Platforms > Windows, y añade el siguiente código:
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;
namespace MAUI_IronXL
{
public partial class SaveService
{
public async partial void SaveAndView(string fileName, string contentType, MemoryStream stream)
{
StorageFile stFile;
string extension = Path.GetExtension(fileName);
IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
FileSavePicker savePicker = new FileSavePicker();
savePicker.DefaultFileExtension = ".xlsx";
savePicker.SuggestedFileName = fileName;
savePicker.FileTypeChoices.Add("XLSX", new List<string> { ".xlsx" });
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
stFile = await savePicker.PickSaveFileAsync();
}
else
{
StorageFolder local = ApplicationData.Current.LocalFolder;
stFile = await local.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
}
if (stFile != null)
{
using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite))
{
using (Stream outputStream = zipStream.AsStreamForWrite())
{
outputStream.SetLength(0);
stream.WriteTo(outputStream);
await outputStream.FlushAsync();
}
}
MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully");
UICommand yesCmd = new("Yes");
msgDialog.Commands.Add(yesCmd);
UICommand noCmd = new("No");
msgDialog.Commands.Add(noCmd);
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);
IUICommand cmd = await msgDialog.ShowAsync();
if (cmd.Label == yesCmd.Label)
{
await Windows.System.Launcher.LaunchFileAsync(stFile);
}
}
}
}
}using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;
namespace MAUI_IronXL
{
public partial class SaveService
{
public async partial void SaveAndView(string fileName, string contentType, MemoryStream stream)
{
StorageFile stFile;
string extension = Path.GetExtension(fileName);
IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
FileSavePicker savePicker = new FileSavePicker();
savePicker.DefaultFileExtension = ".xlsx";
savePicker.SuggestedFileName = fileName;
savePicker.FileTypeChoices.Add("XLSX", new List<string> { ".xlsx" });
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
stFile = await savePicker.PickSaveFileAsync();
}
else
{
StorageFolder local = ApplicationData.Current.LocalFolder;
stFile = await local.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
}
if (stFile != null)
{
using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite))
{
using (Stream outputStream = zipStream.AsStreamForWrite())
{
outputStream.SetLength(0);
stream.WriteTo(outputStream);
await outputStream.FlushAsync();
}
}
MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully");
UICommand yesCmd = new("Yes");
msgDialog.Commands.Add(yesCmd);
UICommand noCmd = new("No");
msgDialog.Commands.Add(noCmd);
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);
IUICommand cmd = await msgDialog.ShowAsync();
if (cmd.Label == yesCmd.Label)
{
await Windows.System.Launcher.LaunchFileAsync(stFile);
}
}
}
}
}Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Runtime.InteropServices.WindowsRuntime
Imports Windows.Storage
Imports Windows.Storage.Pickers
Imports Windows.Storage.Streams
Imports Windows.UI.Popups
Namespace MAUI_IronXL
Partial Public Class SaveService
Public Async Sub SaveAndView(ByVal fileName As String, ByVal contentType As String, ByVal stream As MemoryStream)
Dim stFile As StorageFile
Dim extension As String = Path.GetExtension(fileName)
Dim windowHandle As IntPtr = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle
If Not Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons") Then
Dim savePicker As New FileSavePicker()
savePicker.DefaultFileExtension = ".xlsx"
savePicker.SuggestedFileName = fileName
savePicker.FileTypeChoices.Add("XLSX", New List(Of String) From {".xlsx"})
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle)
stFile = Await savePicker.PickSaveFileAsync()
Else
Dim local As StorageFolder = ApplicationData.Current.LocalFolder
stFile = Await local.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting)
End If
If stFile IsNot Nothing Then
Using zipStream As IRandomAccessStream = Await stFile.OpenAsync(FileAccessMode.ReadWrite)
Using outputStream As Stream = zipStream.AsStreamForWrite()
outputStream.SetLength(0)
stream.WriteTo(outputStream)
Await outputStream.FlushAsync()
End Using
End Using
Dim msgDialog As New MessageDialog("Do you want to view the document?", "File has been created successfully")
Dim yesCmd As New UICommand("Yes")
msgDialog.Commands.Add(yesCmd)
Dim noCmd As New UICommand("No")
msgDialog.Commands.Add(noCmd)
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle)
Dim cmd As IUICommand = Await msgDialog.ShowAsync()
If cmd.Label = yesCmd.Label Then
Await Windows.System.Launcher.LaunchFileAsync(stFile)
End If
End If
End Sub
End Class
End NamespaceResultado
Construye y ejecuta el proyecto MAUI. En una ejecución exitosa, se abrirá una ventana mostrando el contenido representado en la imagen de abajo.

Figura 1 - Salida
Al hacer clic en el botón "Crear archivo de Excel" se abrirá una ventana de diálogo separada. Esta ventana solicita a los usuarios que elijan una ubicación y un nombre de archivo con los que guardar un nuevo archivo de Excel generado. Especifica la ubicación y el nombre del archivo como se indica, y haz clic en OK. Después, aparecerá otra ventana de diálogo.

Figura 2 - Crear ventana emergente de Excel
Abrir el archivo de Excel como se indicó en el popup mostrará un documento como el que se muestra en la captura de pantalla siguiente.

Figura 3 - Ventana emergente Leer y modificar Excel
Al hacer clic en el botón "Leer y modificar archivo de Excel" se cargará el archivo de Excel previamente generado y lo modificará con los colores de fondo y texto personalizados que definimos en una sección anterior.

Figura 4 - Salida de Excel
Al abrir el archivo modificado, verás la siguiente salida con el índice de contenidos.

Figura 5 - Salida de Excel modificada
Conclusión
Se explicó cómo podemos crear, leer y modificar archivos de Excel en la aplicación .NET MAUI usando la biblioteca IronXL. IronXL funciona muy bien y realiza todas las operaciones con velocidad y precisión. Es una excelente biblioteca para operaciones de Excel, superando a Microsoft Interop, ya que no requiere instalación alguna del paquete de Microsoft Office en la máquina. Además, IronXL admite múltiples operaciones como crear libros y hojas de trabajo, trabajar con rangos de celdas, formatear y exportar a varios tipos de documentos como CSV, TSV, y más.
IronXL es compatible con todas las plantillas de proyectos como Windows Form, WPF, ASP.NET Core, y muchas otras. Consulta nuestros tutoriales para crear archivos de Excel y leer archivos de Excel para obtener información adicional sobre cómo usar IronXL.
Enlaces de acceso rápido
Explora esta guía práctica en GitHub
El código fuente de este proyecto está disponible en GitHub.
Utilice este código para empezar a trabajar fácilmente en tan solo unos minutos. El proyecto se guarda como un proyecto de Microsoft Visual Studio 2022, pero es compatible con cualquier IDE .NET.
Cómo leer, crear y editar archivos de Excel en aplicaciones .NET MAUIVer la referencia de la API
Explore la Referencia de API para IronXL, que describe los detalles de todas las características, espacios de nombres, clases, métodos, campos y enumeraciones de IronXL.
Ver la referencia de la APIPreguntas Frecuentes
¿Cómo creo un archivo Excel en una aplicación .NET MAUI?
Para crear un archivo Excel en un proyecto .NET MAUI, usa la biblioteca IronXL para inicializar un nuevo libro de trabajo y hoja de cálculo. Luego puedes establecer valores de celda, aplicar fórmulas de Excel y personalizar el formato antes de guardar el archivo mediante una clase personalizada SaveService.
¿Puedo leer archivos Excel existentes en una aplicación .NET MAUI?
Sí, puedes usar IronXL para cargar y leer archivos Excel existentes en una aplicación .NET MAUI. La biblioteca te permite acceder y modificar valores de celdas, aplicar fórmulas e implementar formato personalizado.
¿Cuáles son los beneficios de usar IronXL para manipulación de archivos Excel en .NET MAUI?
IronXL ofrece una solución autosuficiente para manipulación de archivos Excel en .NET MAUI, eliminando la necesidad de Microsoft Office o Interop. Soporta la creación, lectura y edición de archivos Excel de manera eficiente y puede exportar a varios formatos como CSV y TSV.
¿Cómo puedo instalar IronXL en mi proyecto .NET MAUI?
Puedes instalar IronXL en tu proyecto .NET MAUI usando la Consola del Administrador de Paquetes NuGet en Visual Studio. Ejecuta el comando: Install-Package IronXL.Excel para agregar la biblioteca a tu proyecto.
¿Es posible formatear celdas de Excel de manera programática en .NET MAUI?
Sí, con IronXL, puedes formatear celdas de Excel de manera programática en .NET MAUI. Esto incluye establecer estilos de celda, colores y aplicar diversas opciones de formato para mejorar la apariencia de tus archivos Excel.
¿Cómo puedo implementar una clase SaveService para archivos Excel en mi aplicación .NET MAUI?
Para implementar una clase SaveService en .NET MAUI, puedes crear una clase que utilice la funcionalidad de IronXL para gestionar el guardado de archivos Excel en el almacenamiento local. Esto implica definir métodos para especificar rutas de archivo y gestionar operaciones de E/S de archivos.
¿Qué plantillas de proyecto soporta IronXL en aplicaciones .NET?
IronXL soporta una variedad de plantillas de proyecto .NET, incluyendo Windows Forms, WPF, ASP.NET Core, y más, proporcionando flexibilidad para los desarrolladores que trabajan en diferentes tipos de aplicación.
¿Dónde puedo encontrar el código fuente del proyecto .NET MAUI Excel?
El código fuente del proyecto .NET MAUI Excel utilizando IronXL está disponible en GitHub. Esto permite a los desarrolladores configurar rápidamente y experimentar con la manipulación de archivos Excel en sus aplicaciones usando Visual Studio 2022.






