Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/09/2013, 08:27
CRauda
 
Fecha de Ingreso: septiembre-2010
Mensajes: 91
Antigüedad: 14 años, 4 meses
Puntos: 9
Respuesta: generar automáticamente registros de Excel en java

Buen dia, primero que nada lo que necesitas hacer seria armar el nombre del documento dinamicamente, para asi inicializar un objeto tipo FileReader que ira a leer tu archivo (de la ruta que le espeficiques) para asi recorrerlo.

seria algo similar a esto:

Código Java:
Ver original
  1. public void leerExcel(FileUploadEvent file) throws FileNotFoundException, IOException {
  2.     File bow = null;
  3.     FileReader freader = null;
  4.     CsvReader datos = null;
  5.     String ruta = "ruta/nombredelarchivo.csv";//esta es la que armaras dinamicamente en tu caso
  6.     bow = new File(ruta); //Luego inicializas el objeto bow con la ruta para que sea leido
  7.     freader = new FileReader(bow);
  8.     datos = new CsvReader(freader);
  9.     int contador = 0;
  10.     int cantidadCamposArchivo = 10; //Esta es la cantidad de columnas del archivo csv, es muy importante este dato.
  11.     while (datos.readRecord()) {
  12.         for (int i = 0; i < cantidadCamposArchivo; i++) {
  13.             String sql = "insert into tabla(columna1,columna2,columna3,etc)values("; //Aca no le agregas parametros, los valores se contatenan en el datos.get(i)
  14.             sql += datos.get(i);
  15.             if (contador < cantidadCamposArchivo - 1) { //Aca debes ponerle el -1 sino nunca entrara en el "else" porque el i igual queda < cantidadCampos
  16.                 sql = ",";
  17.                 contador += 1;
  18.             } else {
  19.                 sql += ")";
  20.                 sql = "";
  21.         ejecutarQuery(sql); //Aca mandas el query a ejecutarse a la base por medio de otra funcion
  22.                 contador = 0;
  23.             }
  24.         }
  25.     }
  26.     datos.close();
  27. }

Espero te sirva. Saludos

Última edición por CRauda; 19/09/2013 a las 08:44