Foros del Web » Programación para mayores de 30 ;) » Java »

Una ayuda por favor

Estas en el tema de Una ayuda por favor en el foro de Java en Foros del Web. Bueno a ver como planteo esto necesito que desde Java me guarde los cambios que hago en un archivo Excel, el archivo lo genero en ...
  #1 (permalink)  
Antiguo 03/01/2011, 04:30
 
Fecha de Ingreso: agosto-2010
Mensajes: 51
Antigüedad: 13 años, 8 meses
Puntos: 1
Una ayuda por favor

Bueno a ver como planteo esto necesito que desde Java me guarde los cambios que hago en un archivo Excel, el archivo lo genero en una plantilla dentro de la aplicacion y haciendo las cajas editables como si fueran celdas de Excel y cuando pulso a "Guardar" que me guarde los cambios en el archivo Excel, y cuando abre ese archivo Excel vea los cambios. Os pongo el codigo que estoy empleando a ver si dais con la solucion porque yo estoy un poco desesperado.

Codigo de como saco la tabla que simula el excel en web
Código:
private void actualizaArchivo(File file, Anualidad anualidad) {
		POIFSFileSystem poifsFileSystem = null;
		try {
			poifsFileSystem = new POIFSFileSystem(new FileInputStream(file));
		}catch (FileNotFoundException ex) {
			ex.printStackTrace();
		}catch (IOException ex) {
			ex.printStackTrace();
		}
		HSSFWorkbook hssfWorkbook = null;
		try{
			hssfWorkbook = new HSSFWorkbook(poifsFileSystem);
		}catch (IOException ex) {
			ex.printStackTrace();
		}
		HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);
				
		Iterator it = hssfSheet.rowIterator();
		Iterator<Filas> itFilas = anualidad.getFilas().iterator();
		//Recorremos las filas del excel
		Filas fila = itFilas.next(); //Recorremos las FILAS del excel que se va a generar con los cambios
		while(it.hasNext() && itFilas.hasNext()){
			HSSFRow hssfRow = (HSSFRow)it.next(); //Recorremos las filas del excel
			Iterator<HSSFCell> itHssfCell = hssfRow.cellIterator(); //Recorremos las celdas del excel
			Iterator<Celdas> itCeldas = fila.getFilas().iterator(); //Recorremos las CELDAS del excel que se va a generar con los cambios 
			
			//Recorremos las distintas celdas del excel
			while(itHssfCell.hasNext() && itCeldas.hasNext()){
				HSSFCell auxCelda = itHssfCell.next();
				Celdas contCelda = itCeldas.next();
				
				//Comprobamos cada uno de los valores que pueden venir en las celdas
				switch(auxCelda.getCellType()){
	                case HSSFCell.CELL_TYPE_BLANK: 
	                				auxCelda.setCellValue("");
	                				break;
	                case HSSFCell.CELL_TYPE_BOOLEAN: 
	                				auxCelda.setCellValue(String.valueOf(contCelda.getCeldas()));
	                				break;
	                case HSSFCell.CELL_TYPE_FORMULA:
	                				auxCelda.setCellValue(String.valueOf(contCelda.getCeldas()));
			                        break;
	                case HSSFCell.CELL_TYPE_NUMERIC:
	                				auxCelda.setCellValue(String.valueOf(contCelda.getCeldas()));
	                				break;
	                case HSSFCell.CELL_TYPE_STRING: 
	                				auxCelda.setCellValue(contCelda.getCeldas());
	                				break;
	                default: break;
				}
				//Se añaden los datos a las celdas
				contCelda.setCeldas(contCelda.getCeldas());
				//Se añaden las celdas a la fila
				fila.setFilas(fila.getFilas());
				
			}
		}
		//Se añade las filas al archivo
		anualidad.setFilas(anualidad.getFilas());
	}
Y luego este es el bean donde declaro las filas del excel

Código:
public abstract class BaseAnualidad extends AbstractBaseVO {

	private Integer idAnualidad;
	private ExpedienteSpsi expediente;
	private Integer anualidad;
	private String observaciones;
	private Double fact_ene;
	private Double fact_feb;
	private Double fact_mar;
	private Double fact_abr;
	private Double fact_may;
	private Double fact_jun;
	private Double fact_jul;
	private Double fact_ago;
	private Double fact_sep;
	private Double fact_oct;
	private Double fact_nov;
	private Double fact_dic;
	private Double facturacion;
	private Double comp_gasto;
	private Double prev_inv;
	private Double cant_retenida;
	private Double rec_prop_pago;
	private Double presupuesto;
	private Double inversion;
	private String audUser;
	private Date audDate;
	private byte[] archivoArchivoExcel;
	private byte[] archivo;
	private boolean archivoSubido;
	private String nombreFichero;
	private String rutaInforme;
	private ArrayList<Filas> filas = new ArrayList<Filas>(0);
	
	public ArrayList<Filas> getFilas() {
		return filas;
	}

	public void setFilas(ArrayList<Filas> filas) {
		this.filas = filas;
	}
...
Muchas gracias y a ver si me podeis ayudar

Etiquetas: favor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:23.