Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Java (básico) > Java para actualizar Excel
-Foros de debate

Java (básico)
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Java para actualizar Excel
Enviado por the_pas el día 16 de junio de 2008

Tengo el siguiente programa en Java, que lo que me hace es actualizar un fichero excel, pero el problema que tengo es que cuadno abro el excel als formulas que me ejecuta se queda en #¡VALOR! pero si le doy F2 y luego intro se me pone el valor correcto,cual puede ser mi problema en el codigo??

os adjunto el codigo:

public static void main(String[] args) {
// TODO Auto-generated method stub
RentaVariable rv=new RentaVariable(args[0]);
rv.generaFichero();
}

public RentaVariable()
{
this.rutaProperty="";
}

public RentaVariable(String rutaProperty)
{
//Almaceno el fichero de entrada
this.rutaProperty=rutaProperty;
this.cargaConfiguracion(this.rutaProperty);
}

public void generaFichero()
{
String cadenaEntrada; //Linea auxiliar para recoger la cadena de entrada
int row; //Contador que me dice porque linea voy
String token=","; //Token con el que separaremos los archivos de entrada
String[] partirCadena; //Array que almacena la cadena guardada.
HSSFSheet hoja; //Hoja Excel


//Primero abrimos el fichero de entrada
try
{
//Primero abrimos la hoja excel
FileInputStream fileIn = new FileInputStream(this.ficheroSalida);
//Abro el ficheros excel
HSSFWorkbook wb = new HSSFWorkbook(fileIn);
//Ahora cojo la hoja que quería
hoja = wb.getSheet(this.nombreHoja);
//Abro el fichero de entrada
entrada =new BufferedReader(new FileReader(this.ficheroEntrada));
//Inicializo la fila inicial
row=this.filaInicio;
//Recorro las lineas del fichero
while((cadenaEntrada=entrada.readLine())!=null)
{
partirCadena=cadenaEntrada.split(token);
for (int j=0;j<partirCadena.length;j++)
{
if (partirCadena[j]!=null)
{
if (row>=this.filaInicio+this.numFilaCabecera) //Si estamos fuera de la cabecera miro la configuración
{
//Grabamos la celda
if (this.tipoDatos[j]!=null && this.tipoDatos[j].compareTo("string")==0)
hoja.createRow(row).createCell((short)j).setCellValue(new HSSFRichTextString(partirCadena[j]));
else if (this.tipoDatos[j]!=null && this.tipoDatos[j].compareTo("number")==0)
hoja.createRow(row).createCell((short)j).setCellValue(Double.parseDouble(partirCadena[j]));
}
else //Sino lo meto como Texto enriquecido.
hoja.createRow(row).createCell((short)j).setCellValue(new HSSFRichTextString(partirCadena[j]));
}
}
row++;
}
hoja.setForceFormulaRecalculation(true);
wb.removeName("Inputs");
HSSFName nombre = wb.createName();
nombre.setNameName("Inputs");
nombre.setReference("Input!$A$4:$E$1001");

wb.getSheet("FRP").setForceFormulaRecalculation(true);
fileIn.close();
wb.write(new FileOutputStream(this.ficheroSalida));
entrada.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
private void cargaConfiguracion(String fichero) {
Properties props = new Properties();
try {
props.loadFromXML(new FileInputStream(new File(fichero)));


//int filas=enumerator
this.separador=props.getProperty("Separador");
this.ficheroEntrada=props.getProperty("ficheroEntrada");
this.ficheroSalida=props.getProperty("ficheroSalida");
this.nombreHoja=props.getProperty("nombreHoja");
this.numColumnas=Integer.parseInt(props.getProperty("numColumnas"));
this.filaInicio=Integer.parseInt(props.getProperty("filaInicio"));
this.numFilaCabecera=Integer.parseInt(props.getProperty("filasCabecera"));
//Dimensiono el array
this.tipoDatos=new String[this.numColumnas];
//Ahora relleno el array con el tipo de datos que necesito
for (int i=0;i<this.numColumnas;i++)
this.tipoDatos[i]=props.getProperty("col"+i);
} catch (InvalidPropertiesFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

 

Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network