3

セルD6=D5 * 2およびD5が1に設定されたワークシートout.xlsを作成しました。私の問題は、jxlのD5に値をプラグインすると、D6が計算されないことです。D6は、Excelで1からD5に接続したときに最初に計算した値を保持しているだけです。

注:私が取り組もうとしているプログラミングの問題ははるかに大きく、これはエラーを減らすために非常に縮小されたバージョンです。

Jexcelを使用するのはこれが初めてで、昨年Javaを学んだばかりなので、助けていただければ幸いです。私は昨日6時間かけてウェブ上で答えを見つけようとしましたが、役に立ちませんでした。

出力はコードコードの下に添付されます
:(メインとインポートを省略)

        WorkbookSettings custom= new WorkbookSettings();
        custom.setRationalization(true);
        custom.setRefreshAll(true);
        custom.setUseTemporaryFileDuringWrite(true);
        Workbook workbook = Workbook.getWorkbook(new File("out.xls"),custom); 


        WritableWorkbook copy = Workbook.createWorkbook(new File("output.xls"), workbook); 

        WritableSheet sheet2 = copy.getSheet(0); 
        SheetSettings customsheetsettings=new SheetSettings(sheet2);
        customsheetsettings.setAutomaticFormulaCalculation(true); 
        Number number = new Number(3, 4, 3);
        sheet2.addCell(number); 


        copy.write();
        copy.close(); 
        workbook.close();


        Workbook workbook2 = Workbook.getWorkbook(new File("output.xls")); 
        Sheet sheet=workbook2.getSheet(0);


        System.out.println("D5:"+sheet.getCell(3,4).getContents());
        FormulaCell formula5=(FormulaCell) sheet.getCell(3,5);
        System.out.println("Formula:"+formula5.getFormula());
        System.out.println("D6:"+formula5.getContents()); 

        NumberFormulaCell nfc=(NumberFormulaCell)sheet.getCell(3, 5); 
        System.out.println(nfc.getValue());  
        workbook2.close();

出力:

D5:3
Formula:D5*2.0
D6:2
2.0
4

2 に答える 2

2

JExcel は、Excel ファイルの読み取りまたは書き込みのみを許可し、Excel ファイルのコンテンツの Java 表現を提供します。Excelの代わりにはなりません。

数式を追加すると、この数式が計算されますが、生成されたファイルを Excel で開いたときに Excel でのみ計算されます。セルは JExcel によって計算されません。

于 2012-06-03T17:07:22.367 に答える
0

他の誰かが知りたい場合は、POI が FormulaEvaluator クラスを使用してそれを行います。

攻撃

于 2013-05-21T19:23:20.497 に答える