Excel - mit jxf sprachabhängige Formeln schreiben

  • Themenstarter Themenstarter trez
  • Beginndatum Beginndatum
T

trez

Gast
Hallo.

Nach längerer Pause beschäftige ich mich wieder einmal mit Java.
Als Logfile möchten wir ein Excel-Sheet generieren und dabei bin ich auf die jxl-Library gestossen.

Hat hier überhaupt schon jemand dieses Framework eingesetzt? Die Forumssuche liefert für "jxl" null Treffer. Gibt es etwas geeigneteres als jxl?

Mit der geht alles gut, so lange ich keine Formeln schreiben will. Die Sprachabhängigkeit von Excel scheint mir da eine Falle zu stellen.

Java:
private static void writeFormula(WritableSheet sheet, int c, int r) {
	String formulaString = "B" + (r+1) + "-B" + r;
	Formula f = new Formula(c, r, formulaString);
	try {
		sheet.addCell(f);
	} catch (Exception e) {
		e.printStackTrace();
	}
}

Baut mir sauber die Differenzformeln, z.B. =B5-B4, ein, aber wenn ich Formeln wie "Summe" möchte, wird eine Exception ausgelöst. (Auch wenn ich "SUMME" einsetze)

Was läuft hier schief?

Java:
	private static void writeSum(WritableSheet sheet, int c, int r) {
		String formulaString = "SUM(B4:B6)";
		Formula f = new Formula(c, r, formulaString);
		try {
			sheet.addCell(f);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

Code:
java.util.MissingResourceException: Can't find bundle for base name functions, locale de_CH
	at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
	at java.util.ResourceBundle.getBundleImpl(Unknown Source)
	at java.util.ResourceBundle.getBundle(Unknown Source)
	at jxl.biff.formula.FunctionNames.<init>(FunctionNames.java:58)
	at jxl.WorkbookSettings.getFunctionNames(WorkbookSettings.java:531)
	at jxl.biff.formula.Function.getFunction(Function.java:148)
	at jxl.biff.formula.StringFunction.getFunction(StringFunction.java:63)
	at jxl.biff.formula.StringFormulaParser.handleFunction(StringFormulaParser.java:310)
	at jxl.biff.formula.StringFormulaParser.parseCurrent(StringFormulaParser.java:139)
	at jxl.biff.formula.StringFormulaParser.parse(StringFormulaParser.java:110)
	at jxl.biff.formula.FormulaParser.parse(FormulaParser.java:154)
	at jxl.write.biff.FormulaRecord.initialize(FormulaRecord.java:160)
	at jxl.write.biff.FormulaRecord.setCellDetails(FormulaRecord.java:243)
	at jxl.write.biff.WritableSheetImpl.addCell(WritableSheetImpl.java:1061)
	at test.JExcelExample.writeSum(JExcelExample.java:103)

Danke zum Voraus
trez
 
Ein Schritt weiter - ich wollte lesen was in einer Zelle mit Formel steht.
Den Wert (das Resultat) kann ich auslesen, wenn ich aber die Formel zu lesen versuche kommt dieselbe Exception, wenn ich eine Formel mit "SUMME" lesen will. "=a1+a2" wird problemlos gelesen

Java:
if (type==CellType.NUMBER_FORMULA) {
	FormulaCell fc = (FormulaCell) cell;
	try {
		System.out.println("Formula = " + fc.getFormula());
	} catch (FormulaException e) {
		e.printStackTrace();
	}
}

:bahnhof:
 
Zuletzt bearbeitet von einem Moderator:
Hm - offensichtlich wird das propertiesfile nicht gefunden.
Mehr an anderer Stelle, denn hier passt das nach neuester Erkenntnis nicht mehr hin.
 

Neue Themen


Zurück
Oben