Saltar al pie de página
USANDO IRONXL

Cómo escribir archivos CSV en .NET con IronXL

¿Por qué los desarrolladores .NET necesitan una mejor solución CSV?

Los archivos CSV facilitan el intercambio de datos entre innumerables aplicaciones .NET, y las opciones de la biblioteca estándar a menudo se quedan cortas cuando hay que gestionar la complejidad del mundo real. Desde informes financieros hasta sistemas de inventario, puedes crear archivos CSV mediante programación con solo unas pocas líneas de código. Aunque bibliotecas como CsvHelper cubren operaciones básicas de CSV, los desarrolladores modernos enfrentan escenarios complejos: convertir libros de Excel con fórmulas, preservar los tipos de datos durante la exportación y manejar flujos de trabajo de hojas de cálculo de nivel empresarial. IronXL aborda estos retos combinando la escritura fiable de CSV con la funcionalidad completa de Excel en una única biblioteca IronXL sin dependencias que cumple con los estándares RFC 4180.

Esto la hace ideal para desarrolladores que crean un generador de CSV .NET personalizado o un analizador de CSV .NET que admita múltiples columnas, lógica de procesamiento específica por fila y separadores inferidos automáticamente. Este tutorial le guía a través de las capacidades CSV de IronXL, desde la creación básica de archivos hasta la exportación de datos a escala Enterprise.

¿Cómo se instala y configura IronXL?

La instalación de IronXL se realiza en cuestión de segundos a través del gestor de paquetes NuGet. Puede utilizar la Consola del Administrador de paquetes o la CLI de .NET :

Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
SHELL

Una vez instalado, añade el espacio de nombres IronXL y empieza a escribir archivos CSV de inmediato. El siguiente ejemplo muestra cómo crear un libro de trabajo, rellenarlo con datos y exportarlo a CSV utilizando sentencias de nivel superior en .NET 10:

using IronXL;

// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("data");

// Add headers
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Add data rows
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;

workSheet["A3"].Value = "Gadget";
workSheet["B3"].Value = 250;
workSheet["C3"].Value = 34.50;

workSheet["A4"].Value = "Component";
workSheet["B4"].Value = 75;
workSheet["C4"].Value = 8.99;

// Save as CSV with comma delimiter
workBook.SaveAsCsv("inventory.csv", ",");
using IronXL;

// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("data");

// Add headers
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Add data rows
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;

workSheet["A3"].Value = "Gadget";
workSheet["B3"].Value = 250;
workSheet["C3"].Value = 34.50;

workSheet["A4"].Value = "Component";
workSheet["B4"].Value = 75;
workSheet["C4"].Value = 8.99;

// Save as CSV with comma delimiter
workBook.SaveAsCsv("inventory.csv", ",");
$vbLabelText   $csharpLabel

Este sencillo programa muestra cómo escribir contenido CSV directamente desde tu código C#, creando un objeto WorkBook que almacena tus datos. El método SaveAsCsv utiliza una coma como separador predeterminado, pero permite especificar cualquier carácter delimitador, lo cual resulta útil en contextos específicos de cada región en los que los separadores de columna estándar son el punto y coma o las tabulaciones.

Comprensión del modelo de libros y hojas de cálculo

IronXL organiza los datos mediante una jerarquía de libros a hojas de cálculo. Un WorkBook actúa como contenedor de uno o más objetos WorkSheet, cada uno de los cuales representa una cuadrícula de celdas. Al exportar a CSV, IronXL crea un archivo por hoja de cálculo, nombrándolos con el patrón filename.SheetName.csv.

Este modelo le ofrece una API coherente tanto si crea archivos nuevos desde cero, como si carga libros de Excel existentes o exporta datos desde una base de datos. Las celdas se referencian utilizando la notación estándar de Excel (A1, B2) o números enteros de filas y columnas con base cero, lo que mejor se adapte a su flujo de trabajo.

¿Cómo se escriben archivos CSV con delimitadores personalizados?

Las diferentes regiones y sistemas esperan distintos separadores de columnas. En las configuraciones regionales europeas se suelen utilizar puntos y comas, ya que las comas aparecen en los números decimales. Los valores separados por tabulaciones (TSV) son habituales en bioinformática y en los procesos de procesamiento de registros. El método SaveAsCsv de IronXL acepta cualquier cadena como delimitador:

using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");

workSheet["A1"].Value = "Region";
workSheet["B1"].Value = "Revenue";
workSheet["C1"].Value = "Units";

workSheet["A2"].Value = "Europe";
workSheet["B2"].Value = "1250000.50";
workSheet["C2"].Value = 3400;

workSheet["A3"].Value = "North America";
workSheet["B3"].Value = "2800000.00";
workSheet["C3"].Value = 7200;

// Semicolon delimiter for European locales
workBook.SaveAsCsv("sales_europe.csv", ";");

// Tab delimiter for TSV output
workBook.SaveAsCsv("sales_tsv.tsv", "\t");
using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");

workSheet["A1"].Value = "Region";
workSheet["B1"].Value = "Revenue";
workSheet["C1"].Value = "Units";

workSheet["A2"].Value = "Europe";
workSheet["B2"].Value = "1250000.50";
workSheet["C2"].Value = 3400;

workSheet["A3"].Value = "North America";
workSheet["B3"].Value = "2800000.00";
workSheet["C3"].Value = 7200;

// Semicolon delimiter for European locales
workBook.SaveAsCsv("sales_europe.csv", ";");

// Tab delimiter for TSV output
workBook.SaveAsCsv("sales_tsv.tsv", "\t");
$vbLabelText   $csharpLabel

La cadena delimitadora se introduce directamente en el campo del carácter separador sin necesidad de ninguna configuración de análisis adicional. IronXL gestiona las comillas de las celdas que contienen el carácter delimitador, garantizando que el resultado se ajuste a la norma RFC 4180.

¿Cómo se convierten los libros de Excel a CSV?

Cómo crear un generador de CSV for .NET con IronXL: Figura 1 - Ejemplo de salida CSV con IronXL

IronXL destaca por convertir archivos Excel existentes a CSV, evaluar fórmulas y preservar la integridad de los datos. Esto es esencial cuando se trabaja con hojas de cálculo que contienen tanto filas de encabezado como valores calculados dinámicamente.

using IronXL;

// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");

// Evaluate all formulas before export so calculated values appear in CSV
workBook.EvaluateAll();

// Export to CSV -- each worksheet creates a separate CSV file
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
workBook.SaveAsCsv("report.csv", ",");
using IronXL;

// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");

// Evaluate all formulas before export so calculated values appear in CSV
workBook.EvaluateAll();

// Export to CSV -- each worksheet creates a separate CSV file
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
workBook.SaveAsCsv("report.csv", ",");
$vbLabelText   $csharpLabel

Al convertir libros de múltiples hojas, IronXL genera automáticamente archivos CSV individuales para cada hoja de cálculo. Los cálculos de fórmulas se ejecutan antes de la exportación, asegurando datos precisos en la salida final del CSV. El método EvaluateAll resuelve todas las fórmulas, incluidas las referencias entre hojas, antes de que el archivo se guarde en el disco.

Resultado

En primer lugar, aquí puede ver los archivos CSV generados a partir del archivo de Excel de varias hojas:

Cómo crear un generador de CSV for .NET con IronXL: Figura 2 - Archivos CSV

Y este es un ejemplo de comparación de una de las hojas de Excel versus el archivo CSV correspondiente:

Cómo crear un generador de CSV for .NET con IronXL: Figura 3 - Ejemplo de salida

¿Cómo exportar un DataTable a CSV?

Para aplicaciones basadas en bases de datos, IronXL facilita la exportación de DataTable. El siguiente ejemplo lee un DataTable de una fuente de datos simulada y lo escribe en un archivo CSV con un delimitador de punto y coma:

using System.Data;
using IronXL;

// Simulate a DataTable from a database query
DataTable dataTable = GetSalesData();

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");

// Write column headers from DataTable schema
for (int col = 0; col < dataTable.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dataTable.Columns[col].ColumnName);
}

// Write data rows
int row = 1;
foreach (DataRow dataRow in dataTable.Rows)
{
    for (int col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col]?.ToString() ?? string.Empty);
    }
    row++;
}

// Export with semicolon delimiter for European compatibility
workBook.SaveAsCsv("sales_data.csv", ";");
using System.Data;
using IronXL;

// Simulate a DataTable from a database query
DataTable dataTable = GetSalesData();

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");

// Write column headers from DataTable schema
for (int col = 0; col < dataTable.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dataTable.Columns[col].ColumnName);
}

// Write data rows
int row = 1;
foreach (DataRow dataRow in dataTable.Rows)
{
    for (int col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col]?.ToString() ?? string.Empty);
    }
    row++;
}

// Export with semicolon delimiter for European compatibility
workBook.SaveAsCsv("sales_data.csv", ";");
$vbLabelText   $csharpLabel

Al importar desde un DataTable, cada fila de la colección dataTable.Rows se convierte en una nueva fila de la hoja de cálculo. IronXL conserva los tipos de datos durante la conversión: los números siguen siendo numéricos, las fechas mantienen su formato y el texto gestiona los caracteres especiales sin necesidad de configuración adicional.

Resultado

Aquí puede ver la fuente de datos de prueba junto al archivo CSV de salida:

Cómo crear un generador de CSV for .NET con IronXL: Figura 4 - Exportación de DataTable a CSV

Empiece con IronXL ahora.
green arrow pointer

¿En qué se diferencia IronXL de CsvHelper a la hora de escribir archivos CSV?

Considere este escenario de exportación de datos de empleados que muestra flujos de trabajo de escritura en CSV con ambas bibliotecas.

Implementación de CsvHelper:

using System.Globalization;
using System.IO;
using CsvHelper;

using var writer = new StreamWriter("employees.csv");
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(employees);
using System.Globalization;
using System.IO;
using CsvHelper;

using var writer = new StreamWriter("employees.csv");
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(employees);
$vbLabelText   $csharpLabel

Implementación de IronXL:

using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");

int rowIndex = 1;
foreach (var emp in employees)
{
    workSheet[$"A{rowIndex}"].Value = emp.Name;
    workSheet[$"B{rowIndex}"].Value = emp.Salary;
    workSheet[$"C{rowIndex}"].Value = emp.StartDate;
    rowIndex++;
}

workBook.SaveAsCsv("employees.csv", ",");
using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");

int rowIndex = 1;
foreach (var emp in employees)
{
    workSheet[$"A{rowIndex}"].Value = emp.Name;
    workSheet[$"B{rowIndex}"].Value = emp.Salary;
    workSheet[$"C{rowIndex}"].Value = emp.StartDate;
    rowIndex++;
}

workBook.SaveAsCsv("employees.csv", ",");
$vbLabelText   $csharpLabel
Comparación de características entre IronXL y CsvHelper
Función CsvHelper IronXL
Escritura básica de CSV
Conversión de Excel a CSV No
Evaluación de fórmulas No
Manejo de múltiples hojas No
Preservación del tipo de datos Manual Automático
Compatibilidad con formatos de Excel (XLSX, XLS, XLSM) No
No se requiere MS Office
Formato y estilos de celdas No
Multipropósito (compatible con .NET 10)

CsvHelper gestiona de forma eficiente la serialización sencilla de objetos POCO. IronXL ofrece capacidades adicionales cuando necesitas cargar archivos Excel existentes, evaluar fórmulas antes de la exportación o gestionar rangos de hojas de cálculo con un control muy preciso. Si su flujo de trabajo implica recibir archivos .xlsx de usuarios empresariales y convertirlos a CSV para sistemas posteriores, IronXL elimina todo un paso de conversión de su proceso.

¿Qué funciones Enterprise ofrece IronXL para la exportación a CSV?

El método SaveAsCsv de IronXL incluye varias capacidades listas para producción:

Características de IronXL CSV Export Enterprise
Función Descripción Caso de uso
Delimitadores personalizados Coma, punto y coma, tabulación o cualquier carácter Compatibilidad con configuraciones regionales
Opciones de codificación UTF-8, UTF-16 y codificaciones personalizadas Conjuntos de caracteres internacionales
Evaluación de fórmulas Calcula fórmulas de Excel antes de exportar Informes financieros, datos dinámicos
Soporte multiplataforma Windows, Linux, macOS Implementaciones en la nube y en contenedores
Exportación de varias hojas Un archivo CSV por hoja de cálculo Estructuras complejas de libros de trabajo
Cumplimiento con RFC 4180 Cotación automática de caracteres especiales Interoperabilidad garantizada

Puede aplicar el formato de datos de celda antes de exportar para controlar cómo aparecen los números, las divisas y las fechas en el archivo CSV resultante. En el caso de conjuntos de datos de gran tamaño, procese los datos por partes utilizando operaciones de rango de hoja de cálculo para mantener un uso predecible de la memoria.

La compatibilidad multiplataforma significa que puede implementar la generación de CSV con tecnología IronXL en contenedores Linux en Kubernetes o Azure App Service sin necesidad de realizar cambios en su código. La biblioteca no incluye dependencias no gestionadas, por lo que se ejecuta de forma idéntica en todos los sistemas operativos. Consulte la guía de compatibilidad de la plataforma IronXL para obtener todos los detalles sobre los entornos de ejecución compatibles.

¿Cómo se abordan los problemas habituales de exportación a CSV?

Al trabajar con exportaciones CSV a gran escala, surgen varios problemas previsibles. A continuación se explica cómo abordar cada uno de ellos:

Caracteres especiales en los datos: IronXL escapa automáticamente las comillas, las comas y los saltos de línea dentro de los valores de las celdas. No es necesario preprocesar cadenas ni escribir lógica de escape personalizada: la biblioteca gestiona internamente las reglas de comillas de RFC 4180.

Manejo de archivos grandes: Para libros con decenas de miles de filas, utilice rangos de hojas de cálculo para procesar los datos por lotes. Escribir en hojas intermedias antes de la exportación final te permite controlar la asignación de memoria.

Problemas de codificación: Especifique explícitamente la codificación UTF-8 cuando se trate de caracteres internacionales, escrituras asiáticas o emojis en los valores de las celdas. IronXL admite la codificación UTF-8 y UTF-16 de forma nativa, por lo que no se requiere ninguna biblioteca de codificación de terceros.

Datos faltantes o mal escritos: IronXL conserva los formatos numéricos y de fecha de forma predeterminada. Cuando una celda contiene una fórmula que hace referencia a datos que faltan, EvaluateAll() se resolverá como un valor de error en lugar de generar silenciosamente texto en blanco, lo que permite detectar problemas de calidad de los datos en una fase temprana del proceso.

Conflictos de delimitadores: Si sus datos contienen el carácter delimitador (por ejemplo, un campo de precio que contenga $1,200.00 al utilizar la coma como delimitador), IronXL envuelve el valor entre comillas dobles automáticamente según las reglas de RFC 4180.

Para obtener orientación detallada, consulta la documentación de IronXL CSV, la referencia de la API y los recursos de soporte.

¿Cómo se leen y analizan archivos CSV con IronXL?

La escritura en CSV es solo la mitad de la historia. IronXL también gestiona la lectura y el análisis de archivos CSV, cargando datos separados por comas en una estructura de libro de trabajo que se puede consultar, filtrar y transformar antes de exportar a cualquier formato.

using IronXL;

// Load an existing CSV file into a workbook
WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Iterate over rows and process data
foreach (var row in workSheet.Rows)
{
    string product = row["A"].ToString();
    int quantity = row["B"].IntValue;
    decimal price = (decimal)row["C"].DoubleValue;

    Console.WriteLine($"Product: {product}, Qty: {quantity}, Price: {price:C}");
}

// Apply a filter and re-export to a new CSV
workBook.SaveAsCsv("filtered_output.csv", ",");
using IronXL;

// Load an existing CSV file into a workbook
WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Iterate over rows and process data
foreach (var row in workSheet.Rows)
{
    string product = row["A"].ToString();
    int quantity = row["B"].IntValue;
    decimal price = (decimal)row["C"].DoubleValue;

    Console.WriteLine($"Product: {product}, Qty: {quantity}, Price: {price:C}");
}

// Apply a filter and re-export to a new CSV
workBook.SaveAsCsv("filtered_output.csv", ",");
$vbLabelText   $csharpLabel

Al cargar un archivo CSV a través de IronXL, se obtiene acceso a la API completa de la hoja de cálculo, incluyendo ordenación, filtrado y evaluación de fórmulas. También puede guardar los datos cargados como un archivo de Excel utilizando SaveAs, convirtiendo CSV a XLSX en una sola llamada al método, un requisito habitual al crear servicios de generación de informes.

¿Cómo se validan los datos CSV antes de exportarlos?

La validación de datos antes de la exportación evita fallos en el proceso posterior. IronXL te ofrece acceso directo a los valores y tipos de las celdas, por lo que puedes comprobar si hay valores nulos, aplicar rangos numéricos y rechazar fechas mal formadas antes de escribir:

using IronXL;

WorkBook workBook = WorkBook.Load("input.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var errors = new List<string>();

for (int rowIdx = 1; rowIdx <= workSheet.RowCount; rowIdx++)
{
    string productName = workSheet[$"A{rowIdx}"].StringValue;
    double price = workSheet[$"C{rowIdx}"].DoubleValue;

    if (string.IsNullOrWhiteSpace(productName))
        errors.Add($"Row {rowIdx}: Product name is empty.");

    if (price <= 0)
        errors.Add($"Row {rowIdx}: Price must be greater than zero (found {price}).");
}

if (errors.Count == 0)
{
    workBook.SaveAsCsv("validated_output.csv", ",");
    Console.WriteLine("Export complete.");
}
else
{
    foreach (var error in errors)
        Console.WriteLine(error);
}
using IronXL;

WorkBook workBook = WorkBook.Load("input.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var errors = new List<string>();

for (int rowIdx = 1; rowIdx <= workSheet.RowCount; rowIdx++)
{
    string productName = workSheet[$"A{rowIdx}"].StringValue;
    double price = workSheet[$"C{rowIdx}"].DoubleValue;

    if (string.IsNullOrWhiteSpace(productName))
        errors.Add($"Row {rowIdx}: Product name is empty.");

    if (price <= 0)
        errors.Add($"Row {rowIdx}: Price must be greater than zero (found {price}).");
}

if (errors.Count == 0)
{
    workBook.SaveAsCsv("validated_output.csv", ",");
    Console.WriteLine("Export complete.");
}
else
{
    foreach (var error in errors)
        Console.WriteLine(error);
}
$vbLabelText   $csharpLabel

Este patrón resulta especialmente valioso en los procesos ETL, donde las filas erróneas deben rechazarse —y registrarse— en lugar de exportarse sin más. Los métodos de acceso a datos de celda de los objetos RangeRow y Cell de IronXL devuelven valores fuertemente tipados, lo que reduce el riesgo de errores silenciosos de coerción de tipos.

¿Cómo empezar a utilizar IronXL para la escritura de CSV?

IronXL transforma la escritura de CSV de un reto de análisis sintáctico en una operación directa. Al combinar la funcionalidad CSV con la compatibilidad con libros de Excel, la evaluación de fórmulas y el manejo automático de tipos, elimina la complejidad de gestionar múltiples bibliotecas o las conversiones manuales de datos.

La versión de prueba gratuita le ofrece acceso completo a todas las funciones —incluidas las exportaciones de varias hojas, la evaluación de fórmulas y la implementación multiplataforma— sin necesidad de una clave de licencia durante el desarrollo. Cuando esté listo para pasar a producción, las licencias comienzan en un nivel de desarrollador único que cubre el uso comercial.

Recursos clave para empezar:

¿Listo para crear flujos de trabajo CSV listos para producción? Comienza tu prueba gratuita y ejecuta tu primera exportación CSV en menos de cinco minutos.

Preguntas Frecuentes

¿Para qué se usa IronXL?

IronXL es una biblioteca .NET diseñada para trabajar con archivos de Excel, permitiendo a los desarrolladores crear, leer y modificar documentos de Excel, así como exportarlos a varios formatos como CSV, preservando tipos de datos y gestionando escenarios complejos de hojas de cálculo.

¿Cómo puede ayudar IronXL con la escritura de CSV en .NET?

IronXL proporciona funcionalidades para exportar libros de trabajo de Excel al formato CSV, asegurando que los tipos de datos se preserven y que los escenarios complejos de hojas de cálculo se manejen eficazmente, convirtiéndolo en una opción ideal para desarrolladores .NET que necesitan una solución de escritura de CSV robusta.

¿Por qué deben considerar los desarrolladores el uso de IronXL para operaciones CSV?

Los desarrolladores deben considerar el uso de IronXL por su capacidad para exportar archivos de Excel a CSV sin problemas, manejar grandes conjuntos de datos y mantener la integridad de los tipos de datos, ofreciendo una solución superior para operaciones CSV en aplicaciones .NET.

¿Cuáles son los beneficios de usar IronXL para la gestión de hojas de cálculo?

Los beneficios de usar IronXL para la gestión de hojas de cálculo incluyen la fácil manipulación de documentos de Excel, soporte para varios formatos de exportación como CSV y la capacidad de manejar estructuras de datos complejas y grandes conjuntos de datos de manera eficiente en aplicaciones .NET.

¿Puede IronXL manejar archivos de Excel grandes al exportar a CSV?

Sí, IronXL está diseñado para manejar archivos de Excel grandes de manera eficiente, permitiendo a los desarrolladores exportar grandes cantidades de datos a CSV sin comprometer el rendimiento o la integridad de los datos.

¿Cómo asegura IronXL la preservación de tipos de datos al exportar a CSV?

IronXL asegura la preservación de tipos de datos convirtiendo con precisión los datos de Excel en formato CSV mientras mantiene los tipos y estructuras de datos originales, lo cual es crucial para aplicaciones que requieren un manejo preciso de datos.

¿Es IronXL adecuado para escenarios de hojas de cálculo complejas?

IronXL es muy adecuado para escenarios de hojas de cálculo complejas, ofreciendo funciones avanzadas para gestionar y manipular documentos de Excel intrincados y asegurando que los datos puedan ser exportados con precisión a CSV u otros formatos.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame