преобразовать формулы электронных таблиц в Java

Какие инструменты доступны для преобразования электронной таблицы OpenOffice или Excel (со всеми ее формулами) в объект Java, который можно вызывать во время выполнения?

Очевидно, что это только сделало бы механизм вычислений и было бы просто о числах и тексте, а не о времени или вызовах API.

Даже при использовании диапазонов именованных ячеек для (эффективного) именования переменных выходной код, вероятно, будет трудным для понимания. Потребуется рефакторинг, чтобы получить больше похожий на обычный код Java. Однако я думаю, что это было бы полезно для создания прототипов некоторых заданий типа обработки данных. Или для встраивания некоторых вычислительных механизмов, поддерживаемых опытным пользователем Excel.

редактировать : Тривиальный пример:

ВНЕШНИЙ ВИД

        A               B               C               D
1       Mortgage Value  100,000.00
2       Interest rate   4.5%
3       Type            Interest-only
4       Years           3
5       Regular payment 4,500.00
6       Total interest  13,500.00

КЛЕТОЧНЫЕ ИМЕНА

        A               B               C               D
1       Mortgage Value  VALUE
2       Interest rate   INTEREST
3       Type            TYPE
4       Years           YEARS
5       Regular payment REGPYMT
6       Total interest  TOTALPYMT

ФОРМУЛЫ

        A               B               C               D
1       Mortgage Value  100,000.00
2       Interest rate   4.5%
3       Type            Interest-only
4       Years           3
5       Regular payment =VALUE*INTEREST
6       Total interest  =YEARS*REGPYMT

перевел бы на Java что-то вроде:

package example.calcengine;
import java.math.*;
public class MyCalcEngine {

    // unnamed cells
    public String A1 = "Mortgage Value";
    public String A2 = "Interest rate";
    public String A3 = "Type";
    public String A4 = "Years";
    public String A5 = "Regular payment";
    public String A6 = "Total interest";

    // named cells
    public BigDecimal VALUE = new BigDecimal(100000.00);
    public BigDecimal INTEREST = new BigDecimal(0.045);
    public String TYPE = "Interest-only";
    public BigDecimal YEARS = new BigDecimal(3);
    public BigDecimal REGPYMT = new BigDecimal(0);
    public BigDecimal TOTALPYMT = new BigDecimal(0);

    // formulas
    public void calculate() {
      REGPYMT = VALUE.multiply(INTEREST);
      TOTALPYMT = REGPYMT.multiply(YEARS);
    }
}

я предполагаю фиксированный тип для ячеек - либо java.math.BigDecimal, либо String.

Ответы на вопрос(4)

Ваш ответ на вопрос