Exportar datos a Excel en Java

Puede exportar fácilmente datos a Microsoft Excel desde varias fuentes disponibles, como JSON y CSV. Como desarrollador de Java, puede exportar datos de matrices, listas de objetos, JSON y CSV a documentos de Excel mediante programación. En este artículo, aprenderá cómo exportar datos a Excel usando Java.

Los siguientes temas se discuten/tratan en este artículo:

API de Java para exportar datos

Para exportar datos a Excel, usaré Aspose.Cells for Java API. Es una poderosa API de manipulación de hojas de cálculo que le permite crear, editar o convertir archivos de Excel dentro de aplicaciones Java. La API le permite realizar funciones de automatización de Excel mediante programación sin necesidad de una aplicación de Microsoft Excel.

Puede descargar el JAR de la API o simplemente agregar la siguiente configuración pom.xml en su aplicación Java basada en Maven para probar los ejemplos de código mencionados a continuación.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.8</version>
</dependency>

Exportar matriz a Excel en Java

Puede exportar fácilmente datos desde una matriz unidimensional o una matriz bidimensional a un documento de Excel. La matriz puede ser de un tipo de referencia o de un tipo de valor. Puede exportar datos de una matriz a Excel siguiendo los sencillos pasos que se mencionan a continuación:

  • Cree una instancia de la clase Libro de trabajo
  • Obtenga la hoja de trabajo en una instancia de la clase Hoja de trabajo
  • Crear una matriz que contenga valores de cadena
  • Llame al método importArray() con la matriz
  • Guarde el archivo de salida llamando al método save() de la clase Workbook

El siguiente ejemplo de código muestra cómo exportar una matriz de cadenas a Excel usando Java.

// Inicializar un objeto de libro de trabajo
Workbook workbook = new Workbook();

// Obtención de la referencia de la hoja de cálculo
Worksheet worksheet = workbook.getWorksheets().get(0);

// Crear una matriz que contenga nombres como valores de cadena
String[] names = new String[] { "Laurence Chen", "Roman Korchagin", "Kyle Huang" };

// Exportando la matriz de nombres a la primera fila y la primera columna verticalmente
worksheet.getCells().importArray(names, 0, 0, true);

// Guardar el archivo de Excel
workbook.save("C:\\Files\\output.xlsx");
Exportar matriz a Excel en Java

Exportar matriz a Excel en Java

La clase Libro de trabajo de la API es la clase principal para crear una hoja de cálculo de Excel. Proporciona funcionalidad para abrir y guardar archivos de Excel nativos. El método save() de esta clase se usa para guardar el archivo de salida en la ruta de archivo especificada.

La clase Hoja de trabajo representa una sola hoja de trabajo y proporciona funcionalidad para trabajar con celdas y filas.

El método importArray() de la clase Cells exporta una matriz de cadenas a una hoja de trabajo. Toma los siguientes parámetros de entrada:

  • stringArray: la matriz de valores de cadena
  • firstRow: el número de fila de la primera celda a exportar
  • firstColumn: el número de columna de la primera celda a exportar
  • isVertical: Especifica si exportar los datos vertical u horizontalmente

La API también proporciona las versiones sobrecargadas del método importArray() para exportar una matriz de enteros o dobles a una hoja de trabajo.

Exportar matriz bidimensional a Excel

De manera similar, puede exportar una matriz bidimensional a un archivo de Excel. El siguiente ejemplo de código muestra cómo exportar una matriz bidimensional a un archivo de Excel en Java.

// Inicializar un objeto de libro de trabajo
Workbook workbook = new Workbook();

// Obtención de la referencia de la hoja de cálculo
Worksheet worksheet = workbook.getWorksheets().get(0);

// Crear una matriz bidimensional de enteros
int[][] array2D = { 
  { 1, 2 }, 
  { 3, 4 }, 
  { 5, 6 }, 
  { 7, 8 } 
};

// Exportando la matriz de nombres a la primera fila y la primera columna verticalmente
worksheet.getCells().importArray(array2D, 0, 0);

// Guardar el archivo de Excel
workbook.save("C:\\Files\\output.xlsx");
Exportar matriz bidimensional a Excel

Exportar matriz bidimensional a Excel

La clase Cells proporciona el método importArray() para exportar una matriz bidimensional de enteros a una hoja de cálculo. La API también proporciona las versiones sobrecargadas de este método para exportar una matriz bidimensional de cadenas o duplicarlas en una hoja de trabajo.

Exportar ArrayList a Excel en Java

Puede exportar datos de un ArrayList a Excel siguiendo los pasos que se mencionan a continuación:

  • Cree una instancia de la clase Libro de trabajo
  • Obtenga la hoja de trabajo en una instancia de la clase Hoja de trabajo
  • Cree una lista de matriz que contenga valores de cadena
  • Llame al método importArrayList() con la lista de arreglos
  • Guarde el archivo de salida llamando al método save() de la clase Workbook

El siguiente ejemplo de código muestra cómo exportar un ArrayList a Excel en Java.

// Inicializar un objeto de libro de trabajo
Workbook workbook = new Workbook();

// Obtención de la referencia de la hoja de cálculo
Worksheet worksheet = workbook.getWorksheets().get(0);

// Crear una instancia de un objeto ArrayList
ArrayList<String> list = new ArrayList<String>();

// Agregue algunos nombres a la lista como valores de cadena
list.add("Laurence Chen");
list.add("Roman Korchagin");
list.add("Kyle Huang");
list.add("Tommy Wang");

// Exportar el contenido de ArrayList verticalmente en la primera fila y la primera columna de la hoja de trabajo. 
worksheet.getCells().importArrayList(list, 0, 0, true);

// Guardar el archivo de Excel
workbook.save("C:\\Files\\Output.xlsx");
Exportar lista de matrices a Excel en Java

Exportar ArrayList a Excel en Java

El método importArrayList() de la clase Cells exporta una ArrayList de datos a una hoja de trabajo. Toma cuatro parámetros incluyendo el ArrayList de datos. Los otros parámetros son firstRow, firstColumn e isVertical.

Exportar colección de objetos personalizados a Excel en Java

Puede exportar datos de una colección de objetos personalizados a Excel siguiendo los pasos que se mencionan a continuación:

  • Cree una instancia de la clase Libro de trabajo
  • Obtenga la hoja de trabajo en una instancia de la clase Hoja de trabajo
  • Crear una lista de matriz de objetos personalizados
  • Llame al método importCustomObjects() con la lista de arreglos
  • Guarde el archivo de salida llamando al método save() de la clase Workbook

El siguiente ejemplo de código muestra cómo exportar una colección de objetos personalizados a Excel en Java.

// Inicializar un nuevo libro de trabajo
Workbook book = new Workbook();

// Obtención de la referencia de la hoja de cálculo
Worksheet sheet = book.getWorksheets().get(0);

// Definir una ArrayList de Personas
List<Person> list = new ArrayList<Person>();

list.add(new Person("Mike", 25, "Software Engineer"));
list.add(new Person("Steve", 30, "Doctor"));
list.add(new Person("Billy", 35, "Teacher"));

// Elegimos solo las columnas Nombre y Edad, no todas, para exportar a la hoja de trabajo         
sheet.getCells().importCustomObjects((Collection)list,
    new String[] { "Name", "Age" }, // propertyNames
    true, // isPropertyNameShown
    0, // firstRow
    0, // firstColumn
    list.size(), // Number of objects to be exported
    true, // insertRows
    null, // dateFormatString
    false); // convertStringToNumber

// Guarde el archivo de Excel
book.save("C:\\Files\\Output.xlsx");
Colección de objetos personalizados para Excel en Java

Colección de objetos personalizados para Excel en Java

El método importCustomObjects() de la clase Cells exporta una lista de objetos personalizados y toma los siguientes parámetros. La API también proporciona la versión sobrecargada de este método que requiere menos parámetros.

  • lista: La colección de objetos personalizados
  • propertyName: especifique el nombre de una propiedad específica para exportar. Si es nulo, exportará todas las propiedades del objeto.
  • isPropertyNameShown: indica si el nombre de la propiedad se exportará a la primera fila
  • firstRow: el número de fila de la primera celda para exportar
  • firstColumn: el número de columna de la primera celda para exportar
  • rowNumber: Número de filas a exportar
  • insertRows: indica si se agregan filas adicionales para ajustar los datos
  • dataFormatString: cadena de formato de fecha para celdas
  • convertStringToNumber: indica si este método intentará convertir una cadena en un número.

Exportar datos a Excel con celdas combinadas en Java

Puede exportar datos de una colección de objetos a una hoja de cálculo que contiene celdas combinadas siguiendo los pasos que se mencionan a continuación:

El siguiente ejemplo de código muestra cómo exportar una colección de objetos personalizados a una hoja de cálculo de Excel con celdas combinadas en Java.

// Abrir un libro de trabajo existente.
Workbook workbook = new Workbook("C:\\Files\\SampleMergedTemplate.xlsx");

// Obtención de la referencia de la hoja de cálculo
Worksheet sheet = workbook.getWorksheets().get(0);

// Crear una instancia de un objeto ArrayList
List<Product> productList = new ArrayList<Product>();

// Creación de una colección de productos
for (int i = 0; i < 3; i++)
{
  Product product = new Product(i, "Product - " + i);
    productList.add(product);
}

// Definir opciones de importación de tablas
ImportTableOptions tableOptions = new ImportTableOptions();

// Establecer la propiedad CheckMergedCells en verdadero
tableOptions.setCheckMergedCells(true);
tableOptions.setFieldNameShown(false);

// Exportar datos a la plantilla de Excel (en la segunda fila, primera columna)           
sheet.getCells().importCustomObjects((Collection)productList, 1, 0, tableOptions);

// Guarde el archivo de Excel
workbook.save("C:\\Files\\Output.xlsx", SaveFormat.XLSX);
Exportar datos a Excel con celdas combinadas en Java

Exportar datos a Excel con celdas combinadas en Java

La clase ImportTableOptions proporciona varias opciones para exportar datos a celdas. setCheckMergedCells indica si se están comprobando las celdas combinadas. La propiedad setFieldNameShown indica si el nombre del campo debe exportarse o no.

Copie filas y columnas de un archivo de Excel a otro en Java

Puede copiar fácilmente filas y columnas de un archivo de Excel a otro mediante programación siguiendo los pasos que se mencionan a continuación:

  • Cree una instancia de la clase Libro de trabajo with source workbook input file
  • Cree una instancia de la clase Libro de trabajo for destination workbook
  • Obtenga hojas de trabajo de origen y destino en instancias separadas de la clase Hoja de trabajo
  • Llame al método copyRows() de la hoja de trabajo de destino con las celdas de la hoja de trabajo de origen
  • Guarde el archivo de salida del libro de destino llamando al método save() de la clase Workbook

El siguiente ejemplo de código muestra cómo copiar filas y columnas de un archivo de Excel a otro usando Java.

// Abra el archivo fuente de Excel.
Workbook srcWorkbook = new Workbook("C:\\Files\\Source_Workbook.xlsx");

// Cree una instancia del archivo de Excel de destino.
Workbook destWorkbook = new Workbook();

// Obtenga la primera hoja de cálculo del libro de origen.
Worksheet srcWorksheet = srcWorkbook.getWorksheets().get(0);

// Obtenga la primera hoja de trabajo del libro de trabajo de destino.
Worksheet desWorksheet = destWorkbook.getWorksheets().get(0);

// Copie todas las filas de la primera hoja de cálculo del Libro de trabajo de origen en
// la primera hoja de trabajo del libro de trabajo de destino.
desWorksheet.getCells().copyRows(srcWorksheet.getCells(), 0, 0, srcWorksheet.getCells().getMaxDisplayRange().getRowCount());

// Guarde el archivo de Excel.
destWorkbook.save("C:\\Files\\Destination_Workbook.xlsx");	
Copie filas y columnas de un archivo de Excel a otro en Java

Copie filas y columnas de un archivo de Excel a otro en Java

Puede copiar filas específicas de un archivo de Excel a otro. El siguiente ejemplo de código muestra cómo copiar filas específicas de un archivo de Excel a otro usando Java.

// Abra el archivo fuente de Excel.
Workbook srcWorkbook = new Workbook("C:\\Files\\Source_Workbook.xlsx");

// Cree una instancia del archivo de Excel de destino.
Workbook destWorkbook = new Workbook();

// Obtenga la primera hoja de cálculo del libro de origen.
Worksheet srcWorksheet = srcWorkbook.getWorksheets().get(0);

// Obtenga la primera hoja de trabajo del libro de trabajo de destino.
Worksheet desWorksheet = destWorkbook.getWorksheets().get(0);

// Copie la segunda fila del libro de trabajo de origen en la primera fila del libro de trabajo de destino.
desWorksheet.getCells().copyRow(srcWorksheet.getCells(), 1, 0);

// Copie la cuarta fila del libro de trabajo de origen en la segunda fila del libro de trabajo de destino.
desWorksheet.getCells().copyRow(srcWorksheet.getCells(), 3, 1);

// Guarde el archivo de Excel.
destWorkbook.save("C:\\Files\\Destination_Workbook.xlsx");
Copie filas y columnas específicas de un archivo de Excel a otro en Java

Copie filas y columnas específicas de un archivo de Excel a otro en Java

El método copyRows() copia datos y formatos de filas completas. Se necesitan las celdas de la hoja de trabajo de origen para copiarlas como parámetros de entrada junto con el índice de fila de origen, el índice de fila de destino y el número de fila copiado. La API también proporciona las versiones sobrecargadas de este método para copiar filas con CopyOptions y PasteOptions.

De manera similar, puede copiar datos de columnas de un documento de Microsoft Excel a otro usando los métodos copyColumn() o copyColumns().

Exportar datos JSON a Excel en Java

Puede exportar fácilmente datos de un archivo JSON a Excel siguiendo los pasos que se mencionan a continuación:

  • Cree una instancia de la clase Libro de trabajo
  • Obtenga la hoja de trabajo en una instancia de la clase Hoja de trabajo
  • Leer el archivo JSON
  • Crear una instancia de la clase CellsFactory
  • Inicie el estilo llamando al método createStyle()
  • Establezca varias propiedades de estilo, como Alineación horizontal, Color de fuente, etc.
  • Cree una instancia de la clase JsonLayoutOptions
  • Establecer estilo de título con el objeto de estilo
  • Establecer matriz como propiedad de tabla en verdadero
  • Llame al método JsonUtility.importData() con la entrada JSON y JsonLayoutOptions
  • Guarde el archivo de salida llamando al método save() de la clase Workbook

El siguiente ejemplo de código muestra cómo exportar datos de un archivo JSON a Excel usando Java.

// Crear una instancia de un objeto Workbook
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);

// Leer archivo JSON
File file = new File("C:\\Files\\sample.json");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
    String jsonInput = "";
    String tempString;
    while ((tempString = bufferedReader.readLine()) != null) {
      jsonInput = jsonInput + tempString; 
    }
    bufferedReader.close();

// Establecer estilos
CellsFactory factory = new CellsFactory();
Style style = factory.createStyle();
style.setHorizontalAlignment(TextAlignmentType.CENTER);
style.getFont().setColor(Color.getCyan());
style.getFont().setBold(true);

// Establecer JsonLayoutOptions
JsonLayoutOptions options = new JsonLayoutOptions();
options.setTitleStyle(style);
options.setArrayAsTable(true);

// Exportar datos JSON
JsonUtility.importData(jsonInput, worksheet.getCells(), 0, 0, options);

// Guardar archivo de Excel
workbook.save("C:\\Files\\Output.xlsx");
{
  "quiz": {
    "sport": {
      "q1": {
        "question": "Which one is correct team name in NBA?",
        "answer": "Huston Rocket"
      }
    },
    "maths": {
      "q1": {
        "question": "5 + 7 = ?",
        "answer": "12"
      },
      "q2": {
        "question": "12 - 8 = ?",
        "answer": "4"
      }
    }
  }
}
Exportar datos JSON a Excel en Java

Exportar datos JSON a Excel en Java

La clase CellsFactory crea instancias de clases del modelo Cells. El método createStyle() de esta clase crea un nuevo objeto de estilo de la clase Style. La clase Style permite configurar el estilo de visualización del documento de Excel, como fuente, color, alineación, borde, etc.

La clase JsonLayoutOptions proporciona las opciones del tipo de diseño JSON. El método setTitleStyle de esta clase se usa para establecer el estilo definido del título. El método setArrayAsTable permite procesar Array como una tabla.

La API proporciona la clase JsonUtility para procesar el JSON. El método importData() de esta clase exporta la cadena JSON y toma los siguientes parámetros:

  • json: la cadena JSON
  • células: Las células
  • fila: el índice de la fila
  • columna: el índice de la columna
  • opción: Las opciones para exportar cadenas JSON

Obtenga datos CSV en Excel usando Java

Puede exportar datos de un archivo CSV a Excel siguiendo los sencillos pasos que se mencionan a continuación:

  • Cree una instancia de la clase LoadOptions con LoadFormat
  • Cree una instancia de la clase Libro de trabajo with CSV file path and LoadOptions object
  • Llame al método save() de la clase Workbook y guarde el archivo de salida

El siguiente ejemplo de código muestra cómo exportar datos de un archivo CSV a Excel usando Java.

// Inicialice LoadOptions con CSV LoadFormat.
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV);

// Abrir archivo CSV como un objeto de libro de trabajo
Workbook workbook = new Workbook("C:\\Files\\Sample.csv", loadOptions);

// Guarde el archivo como un documento de Excel
workbook.save("C:\\Files\\Output.xlsx");
id,language,edition,author,streetAddress,city,state,postalCode
01,Java,third,Herbert Schildt,126,San Jone,CA,394221
02,C++,second,EAAAA,126,San Jone,CA,394221
03,.Net,second,E.Balagurusamy,126,San Jone,CA,394221
Exportar datos CSV a Excel en Java

Exportar datos CSV a Excel en Java

La clase LoadOptions de la API proporciona opciones para cargar el archivo. La clase LoadFormat contiene constantes que representan los formatos de archivo de carga.

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a exportar datos a Excel en Java. También aprendió cómo exportar datos de archivos Arrays, JSON o CSV a Excel mediante programación. Además, aprendió a copiar filas y columnas de un archivo de Excel a otro archivo usando Java. Puede obtener más información sobre Aspose.Cells para la API de Java utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también

Preguntas frecuentes

¿Cómo exportar datos a un archivo XLSX en Java? Puede exportar fácilmente datos de Arrays, Collection of Objects, JSON y CSV a un archivo XLSX utilizando Aspose.Cells para la API Java fácil de integrar en su aplicación Java.

¿Cómo exporto datos de JSON a Excel? Aspose.Cells API proporciona JsonUtility para exportar datos de un archivo JSON a Excel en Java. Puede encontrar pasos sencillos en la sección Exportar datos JSON a Excel en Java.

¿Cómo exporto datos de CSV a Excel en Java? Simplemente puede cargar un archivo CSV y guardarlo como XLSX usando la API de Aspose.Cells. Puede encontrar pasos simples en la sección [Obtener datos CSV en Excel usando Java] (#Exportar-CSV-Data-to-Excel-in-Java).