convertir feuille de calcul formules de java
Quels sont les outils disponibles pour convertir un OpenOffice ou Excel (avec toutes ses formules) dans un objet Java qui peut être appelée au moment de l'exécution?
Évidemment, cela ne ferait qu'un moteur de calcul et juste être une question de chiffres et de texte, pas de timing ou les appels de l'API.
Même avec des plages de cellules nommées être utilisé pour (efficacement) le nom des variables, le code de sortie seraient sans doute difficile à comprendre. Il aurait besoin de refactoring pour obtenir de plus comme normal de code Java. Cependant, je pense qu'il serait utile pour le prototypage certains de traitement de données type d'emplois. Ou pour l'incorporation de certains moteurs de calcul maintenu par une avancée utilisateur d'Excel.
Modifier : Un exemple trivial:
APPARENCE
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
DES NOMS DE CELLULES
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
FORMULES
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
serait de traduire en Java comme quelque chose comme:
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);
}
}
Je suppose fixe type de cellules - un java.les mathématiques.BigDecimal ou une Chaîne de caractères.
La cellule de nommage est une fonction standard dans Excel. J'ai utilisé BigDecimal dans l'exemple de réduire les problèmes d'arrondi (esp monnaie cvac).
Évidemment, le code ci-dessus exemple de génération de l'inconvénient qu'il ne représente pas la feuille à l'aide d'un tableau 2D dans la classe Java. Il serait nécessaire de le faire (et masquer nommé l'accès à la cellule derrière les getters et setters) pour soutenir des Sommes, des Allumettes, des Recherches ou quoi que ce soit référencer des plages de cellules.
OriginalL'auteur martinr | 2010-01-11
Vous devez vous connecter pour publier un commentaire.
Apache POI projet prévoit le code Java qui peut lire (pour la plupart) des feuilles de calcul Excel.
Un autre projet, Jacob, fournit une interface Java pour COM automatisation de l'arbitraire des programmes de Windows, notamment Excel. Vous êtes essentiellement de travail d'Excel API de l'extérieur, en Java.
OriginalL'auteur Carl Smotricz
JExcelApi permet de charger une .xls fichier et de lire/écrire dans les cellules.
http://www.andykhan.com/jexcelapi/
OriginalL'auteur torbjoernwh
Nous avions fait un projet similaire avec SmartXLS pour java.
Il avait un moteur d'exécution de calculer le moteur et le support add-dans les formules.Le classeur source est converti à une classe java qui peuvent être incorporées dans le programme de java et d'appels à des paramètres comme l'entrée dans Excel.
OriginalL'auteur liya
Une autre option est Expr4J. Il met en œuvre un objectif général de l'expression en langue de l'analyseur qui est compatible avec Excel et a une dépendance moteur pour le calcul de l'expression des graphiques. Il met également en œuvre la grande majorit de Excel intégré dans les fonctions.
À partir du site web, en est un exemple:
(Je travaille sur le projet à ce serait, bien sûr, intéressé par tout retour d'information)
OriginalL'auteur Peter Smith