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.