Вопрос по excel, java – Ошибка вычисления формулы Jexcel

3

Я создал рабочий лист,out.xls в котором ячейка D6 = D5 * 2 и D5 установлены на 1. Моя проблема в том, что когда я вставляю значение в D5 в jxl, D6 никогда не вычисляет. D6 просто держит значение, которое он изначально рассчитал, когда я подключил 1 к D5 в Excel.

примечание: у меня гораздо большая проблема с программированием, которую я пытаюсь решить, это просто очень уменьшенная версия, чтобы уменьшить количество ошибок.

Это мой первый раз, когда я использую Jexcel, и я только недавно выучил Java в этом году, поэтому любая помощь будет принята с благодарностью. Вчера я потратил 6 часов, пытаясь найти ответ в Интернете, но безрезультатно.

the output is attached below the code
Code: (опущены основные и импортные)

        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();

output:

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

Ваш Ответ

2   ответа
0

POI делает это с помощью класса FormulaEvaluator.

Att

2

ять Java-представление содержимого файла Excel. Это не заменит Excel.

При добавлении формулы эта формула будет вычислена, но только в Excel, когда вы откроете сгенерированный файл в Excel. Ячейка не рассчитывается JExcel.

Error: User Rate Limit Exceeded user1433764
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded user1433764

Похожие вопросы