IRONSOFTWAREHOME
USANDO IRONXL

Cómo exportar a CSV en Blazor

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

Hoy, nos sumergiremos en cómo usar Blazor e IronXL para convertir un archivo de Excel al formato CSV. Al final de este tutorial, será capaz de crear una aplicación básica de Blazor que exporte datos de Excel en varios formatos, incluyendo CSV.

Introducción a IronXL

IronXL es una potente biblioteca .NET para Excel diseñada para trabajar con archivos de Excel en una amplia gama de formatos, incluidos XLS, XLSX, XLSM, XLTX y CSV. Permite a los desarrolladores leer, escribir y manipular datos de Excel de forma programática sin necesidad de Microsoft Office o Excel Interop.

Con IronXL, puedes crear, cargar y guardar libros de trabajo Excel, así como leer y escribir datos en celdas individuales o rangos. También admite funciones avanzadas como formato, fórmulas, gráficos y tablas dinámicas. IronXL es compatible con varios frameworks .NET y se puede utilizar con lenguajes populares como C# y VB.NET.

Pasos para convertir un archivo de Excel a CSV

Configuración de su proyecto Blazor

Para comenzar, necesitarás crear un nuevo proyecto de servidor Blazor. Abre Visual Studio, crea un nuevo proyecto y selecciona la plantilla "Blazor Server App". Nombra tu proyecto y haz clic en "Crear".

Una vez creado tu proyecto, abre la carpeta de Pages y localiza el archivo Index.razor. Aquí es donde se agregan y codifican los componentes Blazor para manejar las cargas y conversiones de archivos.

Instalación de IronXL

Antes de comenzar a escribir código, es necesario instalar la biblioteca IronXL. Abre la Consola del Administrador de Paquetes en Visual Studio y ejecuta el siguiente comando:

PM > Install-Package IronXL.Excel

Este comando instalará la biblioteca IronXL en tu proyecto Blazor. ¡Ahora estás listo para comenzar a escribir código!

Creación del componente de carga de archivos

Primero, crea un componente básico de carga de archivos que permita a los usuarios cargar un archivo Excel existente. Luego, el componente InputFile se agrega desde el espacio de nombres Microsoft.AspNetCore.Components.Forms. Agrega el siguiente código a tu archivo Index.razor, debajo de la línea "@page "":

@using Microsoft.AspNetCore.Components.Forms
@using IronXL
@using System.IO
@using System.Threading.Tasks

<div class="container">
    <h3>File Upload</h3>

    <InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" />
    <h3>Selected File: @originalFileName</h3>
    <h3 style="color:bisque">Is File converted: <span>@message</span></h3>
</div>
Text

Este código configura el componente de carga de archivos, completo con un botón y un área de mensaje para mostrar el estado de la conversión del archivo. El atributo accept en el componente InputFile especifica los formatos de archivo aceptados.

Escritura del código de conversión de archivos

Ahora, escribamos el código que maneja la carga y conversión de archivos. Se utilizará una combinación de IronXL, Blazor y C# para llevar a cabo esta tarea. Puedes usar IronXL para convertir un CSV a un archivo Excel.

Añade el siguiente código a tu archivo Index.razor, debajo del elemento div que agregaste anteriormente.

@code {
    private string originalFileName;
    private string message = "";

    private async Task OnInputFileChange(InputFileChangeEventArgs e)
    {
        var file = e.File;
        originalFileName = file.Name;

        try
        {
            // Read the uploaded file into a memory stream
            using var memoryStream = new MemoryStream();
            await file.OpenReadStream().CopyToAsync(memoryStream);

            // Load the workbook using IronXL
            WorkBook workBook = WorkBook.Load(memoryStream);

            // Save the workbook as a CSV file
            string outputPath = "sample.csv";
            workBook.SaveAsCsv(outputPath);

            message = "Conversion completed!";
        }
        catch (Exception ex)
        {
            message = $"An error occurred: {ex.Message}";
        }
    }
}
Text

Este código define un método privado llamado OnInputFileChange, que se activará cuando se cargue una hoja de cálculo de Excel utilizando el componente InputFile. Excel puede estar en formato XLS o XLSX. El código lee el archivo Excel básico cargado, lo carga en un objeto WorkBook, y luego guarda el WorkBook como un archivo CSV. El estado de la conversión se muestra en el área de mensajes de la página.

Desglose del código

Primero, mira el código completo:

@page "/"
@using Microsoft.AspNetCore.Components.Forms
@using IronXL
@using System.IO
@using System.Threading.Tasks

<style>
    body{
        background-color: skyblue
    }
    .container {
        max-width: 800px;
        margin: 0 auto;
        font-family: Arial, sans-serif;
    }

    h3 {
        margin-top: 30px;
        font-size: 30px;
        margin-bottom: 30px;
    }

    .button {
        background-color: #4CAF50;
        border: none;
        color: white;
        padding: 15px 32px;
        text-align: center;
        text-decoration: none;
        display: inline-block;
        font-size: 16px;
        margin: 15px 0;
        cursor: pointer;
    }
    span {
        font-size: 20px;
    }
</style>

<div class="container">
    <h3>File Upload</h3>

    <InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" />
    <h3>Selected File: @originalFileName</h3>
    <h3 style="color:bisque">Is File converted: <span>@message</span></h3>
</div>

@code {
    private string originalFileName;
    private string message = "";

    private async Task OnInputFileChange(InputFileChangeEventArgs e)
    {
        var file = e.File;
        originalFileName = file.Name;

        try
        {
            // Read the uploaded file into a memory stream
            using var memoryStream = new MemoryStream();
            await file.OpenReadStream().CopyToAsync(memoryStream);

            // Load the workbook using IronXL
            WorkBook workBook = WorkBook.Load(memoryStream);

            // Save the workbook as a CSV file
            string outputPath = "sample.csv";
            workBook.SaveAsCsv(outputPath);

            message = "Conversion completed!";
        }
        catch (Exception ex)
        {
            message = $"An error occurred: {ex.Message}";
        }
    }
}
Text

Desglosaremos el código más a fondo:

  1. Cuando se carga un archivo, se activa el método OnInputFileChange, y se le pasa un objeto InputFileChangeEventArgs. Este objeto contiene información sobre el archivo subido, como su nombre y tamaño.
  2. Almacena el nombre original del archivo en una variable llamada originalFileName para mostrarlo en la página.
  3. Dentro de un bloque try-catch, crea un nuevo objeto MemoryStream para leer el contenido del archivo cargado. La declaración using asegura que el flujo de memoria se elimine correctamente una vez que ya no sea necesario.
  4. Usa la palabra clave await para copiar de manera asíncrona el contenido del archivo cargado al flujo de memoria. Esto asegura que esta aplicación se mantenga receptiva mientras lee el archivo.
  5. Luego, se utiliza el método WorkBook.Load para cargar el contenido del flujo de memoria en un objeto WorkBook. Este objeto representa todo el libro de Excel, incluidas sus hojas, celdas y datos.
  6. Luego, especifica un nombre de archivo de salida para el archivo CSV convertido. En este caso, estamos usando el nombre "sample.csv".
  7. Luego se utiliza el método SaveAsCsv del objeto WorkBook para guardar el libro como un archivo CSV con el nombre de archivo de salida especificado.
  8. Si la conversión es exitosa, se muestra un mensaje para indicar que se ha completado la conversión. Si ocurre un error, captura la excepción y muestra un mensaje de error.

Probando la aplicación

Ahora que la aplicación Blazor está completa, ¡es hora de probarla! Presiona F5 para ejecutar tu aplicación en Visual Studio. Una vez que la aplicación se esté ejecutando, deberías ver un botón de carga de archivos en la página.

Cómo exportar a CSV en Blazor, Figura 1: Ejecuta la aplicación Blazor Ejecutar la aplicación Blazor

Haz clic en el botón y selecciona un archivo de Excel para cargar. Los formatos de archivo aceptados se enumeran en el atributo accept del componente InputFile.

Cómo exportar a CSV en Blazor, Figura 2: Selecciona un archivo Excel Seleccionar un archivo de Excel

Después de haber seleccionado un archivo, la aplicación leerá el archivo, lo convertirá a un formato CSV usando IronXL y guardará el archivo convertido con el nombre de archivo de salida especificado. Deberías ver un mensaje indicando el estado de la conversión, así como el nombre original del archivo.

Cómo exportar a CSV en Blazor, Figura 3: Estado de la conversión Estado de la conversión

¡Felicitaciones! Has construido con éxito una aplicación Blazor que puede exportar archivos Excel al formato CSV usando IronXL. La siguiente captura de pantalla muestra la salida del programa anterior.

Cómo exportar a CSV en Blazor, Figura 4: El archivo Excel de salida El archivo Excel de salida

Conclusión

Este tutorial demostró cómo construir una aplicación Blazor que puede exportar archivos de Excel a formato CSV usando IronXL. Hemos demostrado cómo crear un componente de carga de archivos, manejar cargas de archivos y convertir archivos de Excel a formato CSV usando las potentes funciones de IronXL.

Al incorporar IronXL en tus aplicaciones Blazor, puedes manejar fácilmente una variedad de tareas relacionadas con Excel, como importar, manipular y exportar datos. Esto abre una amplia gama de posibilidades para tus proyectos y te ayuda a ofrecer una experiencia más rica a tus usuarios. Puedes convertir CSV a Excel en Blazor usando la biblioteca IronXL.

IronXL ofrece una prueba gratuita, que te permite probar sus características y capacidades antes de comprometerte con una compra. Después del período de prueba, las licencias para IronXL comienzan en $999.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta