Apache POI Formel auswerten

8

Ich habe einige Formeln in Zellen meines Blattes, und ich möchte sie nach dem Einfügen einiger Werte auswerten. Ex:

Meine Formel lautet =SUM(B1,B2)

Vor dem Einfügen von Werten war B1 value 1 und B2 value war 3 und das Formelergebnis ist 4

Nach dem Einfügen von Werten hat B1 jetzt den Wert 5 , und B2 hat den Wert 2 , aber die Formel erzeugt immer noch 4 , wie kann ich das auswerten / auslösen, dass dies berechnet wird?

Natürlich, nachdem ich den Return-Knopf in der Formelzelle gedrückt habe, wird der neue Wert 7 berechnet, gibt es eine Möglichkeit, dies ohne manuelle Interaktion auszulösen?

Ich benutze Excel 2007 so XSSFWorkbook

BEARBEITEN / AKTUALISIEREN:

Ich habe Gabors Lösung benutzt, bevor er es gepostet hat, aber ich benutze es als Referenz, hier ist was passiert:

%Vor%

Hier ist ein Teil des relevanten Codes:

%Vor%

ruft Evaluator tatsächlich auf:

%Vor%

Ich suche jemanden, der das benutzt und erfolgreich war, nicht diejenigen, die eine Lösung googlen, ohne es wirklich auszuprobieren. Ich habe viel gegoogelt, um zumindest zu sagen.

Per Gagravar Vorschlag Ich habe 2 POIs auf meinem Klassenpfad:

%Vor%

Ich brauche zwar die Version 3.7 für XSSF-Arbeitsmappen usw.

LÖSUNG:

%Vor%     
ant 19.04.2011, 12:55
quelle

4 Antworten

12

Um einen Kommentar zu einer Antwort zu promoten ...

Sie müssen zunächst sicherstellen, dass Sie die gleiche POI-Version für das Hauptjar und den OOXML-Teil verwenden. Ihr Maven-Snippet zeigte 3,7 für einen und 3,8 Beta 1 für den anderen. Sie müssen sicherstellen, dass sie beide gleich sind. (Vielleicht möchten Sie sogar 3.8-beta2 verwenden, was einfach out ist).

Verwenden Sie dann entweder:

%Vor%

oder:

%Vor%

Weitere Informationen finden Sie Ссылка .

    
Gagravarr 19.04.2011, 13:45
quelle
3

Vielleicht XSSFFormulaEvaluator .evaluateAllFormulaCells(XSSFWorkbook wb) ?

(oder genauer: evaluateFormulaCell(Cell cell) .)

Wenn es nicht funktioniert: Welche Version von POI verwenden Sie? Formeln in XSSF werden ab Version 3.5 unterstützt.

Versuchen Sie auch, XSSFCreationHelper zu verwenden, um Ihren Formel-Evaluator zu instanziieren wie von den POI-Dokumenten vorgeschlagen.

    
egbokul 19.04.2011 13:04
quelle
0

Wenn Sie HSSF verwenden, versuchen Sie:

%Vor%     
imKalpesh 04.05.2013 06:32
quelle
0

Sie können dies verwenden.

%Vor%     
Tanmay kumar shaw 23.12.2014 08:23
quelle

Tags und Links