Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package modelo; import controlador.controladorExcel; import java.awt.Desktop; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; /** * * @author itsbj */ public class Excel { private static Excel instancia; public static Excel getInstance() { if (instancia == null) { instancia = new Excel(); } return instancia; } public void generarExcel(String[] archivoRuta, String[][] registros) { try { /*La ruta donde se crear el archivo*/ String rutaArchivo = archivoRuta[0] + ".xls"; /*Se crea el objeto de tipo File con la ruta del archivo*/ File archivoXLS = new File(rutaArchivo); /*Si el archivo existe se elimina*/ if (archivoXLS.exists()) { archivoXLS.delete(); } /*Se crea el archivo*/ archivoXLS.createNewFile(); /*Se crea el libro de excel usando el objeto de tipo Workbook*/ Workbook libro = new HSSFWorkbook(); /*Se inicializa el flujo de datos con el archivo xls*/ FileOutputStream archivo = new FileOutputStream(archivoXLS); /*Utilizamos la clase Sheet para crear una nueva hoja de trabajo dentro del libro que creamos anteriormente*/ Sheet hoja = libro.createSheet(archivoRuta[1]); /*Hacemos un ciclo para inicializar los valores de 10 filas de celdas*/ int totalFilas = registros.length; int totalColumnas = registros[0].length; for (int f = 0; f < totalFilas; f++) { /*La clase Row nos permitir crear las filas*/ Row fila = hoja.createRow(f); /*Cada fila tendr 5 celdas de datos*/ for (int c = 0; c < totalColumnas - 1; c++) { /*Creamos la celda a partir de la fila actual*/ Cell celda = fila.createCell(c); /*Si la fila es la nmero 0, estableceremos los encabezados*/ if (f == 0) { celda.setCellValue(registros[f][c + 1]); } else { /*Si no es la primera fila establecemos un valor*/ celda.setCellValue(registros[f][c + 1]); } } } /*Escribimos en el libro*/ libro.write(archivo); /*Cerramos el flujo de datos*/ archivo.close(); /*Y abrimos el archivo con la clase Desktop*/ Desktop.getDesktop().open(archivoXLS); } catch (IOException ex) { Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex); } } }