La conversión de CSV a XLSX en Java es un requisito frecuente cuando las aplicaciones necesitan intercambiar datos con usuarios de Excel. El Aspose.HTML Cloud SDK for Java proporciona una API basada en la nube potente que maneja esta transformación de manera eficiente. En esta guía verás cómo configurar la dependencia Maven, leer datos CSV con streams, generar un libro de trabajo XLSX e invocar la conversión a través de la API REST. Al final tendrás un ejemplo completo y listo para producción que podrás adaptar a tus propios proyectos.

Requisitos y Configuración

Antes de comenzar, asegúrese de tener lo siguiente:

  • Java 17 o posterior instalado.
  • Una cuenta de Aspose Cloud con ID de cliente y secreto de cliente.
  • Maven instalado para la gestión de dependencias.

Agrega el Aspose.HTML Cloud SDK for Java a tu proyecto:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-html-cloud</artifactId>
    <version>23.12</version>
</dependency>

Alternativamente, puedes instalar el paquete directamente desde la línea de comandos:

mvn install com.aspose:aspose-html-cloud

Descargue los últimos binarios del SDK desde la página de descarga. Después de resolver la dependencia, está listo para comenzar a programar. La siguiente sección lo guía a través de la implementación paso a paso.

Conversión de CSV a XLSX en Java: Guía paso a paso

Paso 1: Cargar el CSV de origen usando Java Streams

Leer el CSV línea por línea mantiene un bajo uso de memoria, lo cual es esencial para archivos grandes.

Path csvPath = Paths.get("input.csv");
List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);

Paso 2: Inicializar el Aspose.HTML Cloud Client

Cree una instancia de cliente con sus credenciales. La clase cliente está documentada en la referencia de API.

HtmlApi htmlApi = new HtmlApi();
htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");

Paso 3: Convertir el contenido CSV a XLSX

El SDK acepta los datos CSV como una cadena y devuelve un flujo binario XLSX.

String csvContent = String.join("\n", csvLines);
ConvertDocumentRequest request = new ConvertDocumentRequest()
        .outputFormat("xlsx")
        .inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
byte[] xlsxBytes = htmlApi.convertDocument(request);

Paso 4: Guardar el archivo XLSX resultante

Escriba el array de bytes devuelto en un archivo en disco.

Path xlsxPath = Paths.get("output.xlsx");
Files.write(xlsxPath, xlsxBytes);

Paso 5: Verificar la conversión (Opcional)

Puedes abrir rápidamente el archivo generado con Apache POI o cualquier visor de hojas de cálculo para asegurarte de que los datos estén formateados correctamente.

Ejemplo de código completo: Conversión de CSV a XLSX con Aspose.HTML Cloud SDK

El siguiente programa reúne todos los pasos en una única clase ejecutable.

import java.nio.file.*;
import java.nio.charset.StandardCharsets;
import java.util.List;
import com.aspose.html.cloud.api.HtmlApi;
import com.aspose.html.cloud.model.ConvertDocumentRequest;

public class CsvToXlsxConverter {
    public static void main(String[] args) throws Exception {
        // 1. Load CSV file
        Path csvPath = Paths.get("input.csv");
        List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);
        String csvContent = String.join("\n", csvLines);

// 2. Initialise Aspose.HTML Cloud client
        HtmlApi htmlApi = new HtmlApi();
        htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
        htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");

// 3. Convert CSV to XLSX
        ConvertDocumentRequest request = new ConvertDocumentRequest()
                .outputFormat("xlsx")
                .inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
        byte[] xlsxBytes = htmlApi.convertDocument(request);

// 4. Save XLSX file
        Path xlsxPath = Paths.get("output.xlsx");
        Files.write(xlsxPath, xlsxBytes);

System.out.println("Conversion completed. XLSX saved to " + xlsxPath.toAbsolutePath());
    }
}

Nota: Este ejemplo de código demuestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar las rutas de los archivos (input.csv, output.xlsx), verifique que todas las dependencias requeridas estén correctamente instaladas y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o póngase en contacto con el equipo de soporte para obtener ayuda.

Usando cURL para llamar a Aspose.HTML Cloud para la generación de XLSX

La misma conversión se puede realizar a través de la API REST. A continuación se encuentran los comandos cURL requeridos.

  1. Autenticar y obtener token de acceso
curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

La respuesta contiene un access_token que usarás en llamadas posteriores.

  1. Cargar el archivo CSV
curl -X POST "https://api.aspose.cloud/v4.0/html/storage/file/input.csv" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@input.csv"
  1. Ejecutar la conversión
curl -X POST "https://api.aspose.cloud/v4.0/html/convert?outputFormat=xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"inputPath":"input.csv"}' \
     -o output.xlsx
  1. Descargar el archivo XLSX (si elegiste una ubicación de salida diferente)
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/output.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.xlsx

Para obtener una lista completa de los parámetros, consulte la documentación oficial de la API.

Consideraciones de rendimiento para conversiones de CSV a XLSX de gran tamaño

  • Transmitir la entrada CSV - Use Files.lines o un lector con búfer para procesar filas una a una en lugar de cargar todo el archivo en memoria.
  • Cargas por lotes - Cuando se trabaja con archivos mayores de 100 MB, divida el CSV en fragmentos más pequeños y convierta cada fragmento por separado, luego combine las partes XLSX resultantes si es necesario.
  • Habilitar la conversión asíncrona - Añada el parámetro de consulta async=true a la solicitud de conversión para que el servicio en la nube procese el archivo en segundo plano, reduciendo el tiempo de espera del cliente.
  • Ajustar la configuración de salida - Establezca la bandera preserveFormatting a false si no necesita estilos exactos de celda; esto reduce el tamaño de la carga útil y acelera la conversión.

Conclusión

Esta guía demostró cómo realizar la conversión de CSV a XLSX en Java usando el Aspose.HTML Cloud SDK for Java. Aprendiste cómo configurar Maven, leer datos CSV con streams, llamar a la API en la nube y manejar archivos grandes de manera eficiente. Recuerda que se requiere una licencia comercial para uso en producción; puedes obtener una licencia temporal desde la página de licencia temporal y revisar las opciones de precios completas en la página del producto. Con estas herramientas, puedes integrar una funcionalidad de CSV‑to‑XLSX sin problemas en cualquier aplicación Java.

Preguntas frecuentes

  • ¿Cuál es la mejor manera de manejar archivos CSV que contienen comas dentro de campos entre comillas?
    Utilice un analizador CSV robusto como Apache Commons CSV antes de pasar los datos a la API de conversión. El analizador respeta los delimitadores entre comillas, garantizando una extracción precisa de filas.

  • ¿El Aspose.HTML Cloud SDK admite salida XLSX sin un paso intermedio de HTML ?
    Sí. El método convertDocument puede aceptar contenido CSV sin procesar y generar directamente un archivo XLSX, como se muestra en los ejemplos de código.

  • ¿Puedo ejecutar la conversión localmente sin usar la nube?
    El Aspose.HTML Cloud SDK es un servicio basado en la nube, por lo que se requiere una conexión a internet y credenciales válidas. Para escenarios locales, considere Aspose.Cells, que es un producto separado.

  • ¿Cómo puedo monitorear el estado de una solicitud de conversión asíncrona?
    La API devuelve un ID de trabajo cuando se usa async=true. Consulte el endpoint /jobs/{jobId} para verificar el estado y descargue el resultado una vez que el trabajo se complete.

Leer más