Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/01/2007, 10:34
morf
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4
Antigüedad: 17 años, 4 meses
Puntos: 0
Poner formulas a excel desde Java

Saben necesito que alguien me ayude con esto de excel y java, estoy haciendo un pequeño programita para analisis de inversiones y quiero calcular la TIR y pensaba hacerlo en excel e importarlo a java, el problema es que quiero pasar con conjunto de enteros y poder escribirlos en excel y luego calcular la TIR en excel con los datos que le envio desde java y capturar ese dato que seria la TIR, Modifique un codigo que encontre por ahi, para probar las formulas, pero el problema es que la formula que le paso a excel no se actualiza no me devuelve el valor del calculo, si alguien me puede ayudar se los agradeceria mucho.
este es el codigo:
---------------------------------------------------------------------
import java.io.*;
import java.util.Date;
import jxl.*;
import jxl.read.biff.BiffException;
import jxl.write.*;

public class DemoJExcel
{
public static void main(String[] args)
{
escribirExcel();

leerExcel();

System.out.println("Ejemplo Finalizado.");
}

public static void escribirExcel()
{
try
{
//Se crea el libro Excel
WritableWorkbook workbook =
Workbook.createWorkbook(new File("ejemplo1.xls"));

//Se crea una nueva hoja dentro del libro
WritableSheet sheet =
workbook.createSheet("HojaEjemplo1", 0);

//Creamos celdas de varios tipos
sheet.addCell(new jxl.write.Number(0, 0, 4));
sheet.addCell(new jxl.write.Number(1, 0, 5));
sheet.addCell(new jxl.write.Label(2, 0, "ejemplo"));
sheet.addCell(new jxl.write.Boolean(3,0,true));
sheet.addCell(new jxl.write.Formula(4,0,"SUMA(A1:B1)"));
//Creamos una celda de tipo fecha y la mostramos
//indicando un patón de formato
DateFormat customDateFormat =
new DateFormat ("d/m/yy h:mm");

WritableCellFormat dateFormat =
new WritableCellFormat (customDateFormat);

sheet.addCell(new jxl.write.DateTime(5, 0, new Date(), dateFormat));

//Escribimos los resultados al fichero Excel
workbook.write();
workbook.close();

leerExcel();

System.out.println("Ejemplo finalizado.");
}
catch (IOException ex)
{
System.out.println("Error al crear el fichero.");
}
catch (WriteException ex)
{
System.out.println("Error al escribir el fichero.");
}
}

public static void leerExcel()
{
try
{
//Se abre el fichero Excel
Workbook workbook = Workbook.getWorkbook(new File("ejemplo1.xls"));

//Se obtiene la primera hoja
Sheet sheet = workbook.getSheet(0);

//Se leen las primeras 5 celdas
for(int i=0; i<6; i++)
{
//Se obtiene la celda i-esima
Cell cell = sheet.getCell(i,0);

//Se imprime en pantalla la celda según su tipo
if (cell.getType() == CellType.NUMBER)
{
System.out.println("Número: " + ((NumberCell)cell).getValue());
}
else if (cell.getType() == CellType.LABEL)
{
System.out.println("String: " + ((LabelCell)cell).getString());
}
else if (cell.getType() == CellType.BOOLEAN)
{
System.out.println("Boolean: " + ((BooleanCell)cell).getValue());
}
else if (cell.getType() == CellType.DATE)
{
System.out.println("Fecha: " + ((DateCell)cell).getDate());
}
else if (cell.getType() == CellType.NUMBER_FORMULA)
{
System.out.println("Formula: " + ((FormulaCell)cell).getFormula());
System.out.println("Formula: " + ((NumberFormulaCell)cell).getValue());
}

}
}
catch (Exception ex)
{
System.out.println("Error!");
}
}
}
---------------------------------------------------------------------------

Gracias de antemano.