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 LogicModel; import java.awt.Desktop; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; 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 YorleydeMara */ public class excel_Manage { public static void showExelData(List sheetsData) { // // Recorre la lista que contiene las hojas del libro de excel // for (int i = 0; i < sheetsData.size(); i++) { List list = (List) sheetsData.get(i); for (int j = 0; j < list.size(); j++) { Cell cell = (Cell) list.get(j); if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) { System.out.print(cell.getNumericCellValue()); } else if (cell.getCellType() == Cell.CELL_TYPE_STRING) { System.out.print(cell.getRichStringCellValue()); } else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) { System.out.print(cell.getBooleanCellValue()); } if (j < list.size() - 1) { System.out.print(", "); } } System.out.println(""); } } public static List readExcel(String path) throws IOException { //String path1 = System.getProperty("user.home")+"/ejemploExcelJava.xls"; String path1 = path; List<List> sheetData = new ArrayList(); FileInputStream FlujoDeDatos = null; try { FlujoDeDatos = new FileInputStream(path1); if (FlujoDeDatos == null) { System.out.println("No se encuentra el archivo"); // No se encuentra la plantilla - aqui puedes enviar un mensaje de log o lo que quieras return null; } // Si todo ha ido bien HSSFWorkbook workbook = new HSSFWorkbook(FlujoDeDatos); // // Get the first sheet on the workbook. // HSSFSheet sheet = workbook.getSheetAt(0); // When we have a sheet object in hand we can iterator on // each sheet's rows and on each row's cells. We store the // data read on an ArrayList so that we can printed the // content of the excel to the console. // Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); Iterator cells = row.cellIterator(); List data = new ArrayList(); while (cells.hasNext()) { HSSFCell cell = (HSSFCell) cells.next(); //String cel=cell.toString(); // System.out.println("Aadiendo Celda: " + cell.toString()); data.add(cell); } sheetData.add(data); } } catch (IOException e) { e.printStackTrace(); } finally { if (FlujoDeDatos != null) { FlujoDeDatos.close(); } } //showExelData(sheetData); return sheetData; } public static void createFinalExcel(String[] args, String fecha) throws Exception { /*La ruta donde se crear el archivo*/ /*Se crea el objeto de tipo File con la ruta del archivo*/ String rutaArchivo = System.getProperty("user.home") + "/ejemploExcelJava.xls"; 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*/ HashMap<String, Sheet> hojas = new HashMap<String, Sheet>(); for (int m = 0; m < 3; m++) { hojas.put("hoja" + m, libro.createSheet("Mi hoja de trabajo " + m)); } /*La clase Row nos permitir crear las filas*/ /*Cada fila tendr 10 celdas de datos*/ /*Creamos la celda a partir de la fila actual*/ /*Si la fila es la nmero 0, estableceremos los encabezados*/ for (int y = 0; y < 3; y++) { for (int f = 0; f < 10; f++) { Sheet hoja = hojas.get("hoja" + y); Row fila = hoja.createRow(f); for (int c = 0; c < 10; c++) { Cell celda = fila.createCell(c); if (f == 0) { switch (c) { case 0: celda.setCellValue("Fecha y Hora de recepcion"); break; case 1: celda.setCellValue("ID_Cliente"); break; case 2: celda.setCellValue("Asunto"); break; case 3: celda.setCellValue("Ticket_ID"); break; case 4: celda.setCellValue("Categoria"); break; case 5: celda.setCellValue("Empleado_ID"); break; case 6: celda.setCellValue("Fecha y hora de atencin"); break; case 7: celda.setCellValue("Tiempo en segundos"); break; case 8: celda.setCellValue("Comentario"); break; case 9: celda.setCellValue("Estado"); break; } } else { /*Aca se escriben los datos */ celda.setCellValue("YORLEY " + c + "," + f); } } } } /*Escribimos en el libro*/ libro.write(archivo); /*Cerramos el flujo de datos*/ archivo.close(); showExelData(readExcel(rutaArchivo)); /*Y abrimos el archivo con la clase Desktop*/ Desktop.getDesktop().open(archivoXLS); } public static void main(String[] args) throws Exception { excel_Manage.readExcel(System.getProperty("user.home") + "/contraseas.xls"); } }