0

poi-ooxml 3.9を使用して、dbに保存しているExcelテンプレートから請求書レポートを生成します。シートの最後に、合計やその他の税計算を行う数式があります。

cell D30 =SUM(D22:D28) 
cell D31 =D30*0.12 
cell D32 =D31*0.02
cell D33 =D31*0.01
cell D35 =SUM(D30:D33)

シートを新しいファイルに書き込む前に、数式を評価しますが、何も機能しません。以下のコードは、数式を評価するために使用されます。セルに値を書き込むときはいつでも、または操作の最後にのみ数式を評価する必要がありますか?

String formulaCells[] = { "D30", "D31", "D32", "D33", "D35" };
FormulaEvaluator formulaEvaluator = workBook.getCreationHelper()
        .createFormulaEvaluator();
Sheet sheet = workBook.getSheetAt(0);
for (String cellRef : formulaCells) {
CellReference ref = new CellReference(cellRef);
Row actualRow = sheet.getRow(ref.getRow());
Cell cell = actualRow.getCell(ref.getCol());
if (cell != null) {
// here I evaluate the formula     
formulaEvaluator.evaluateFormulaCell(cell);

私が逃したものは何ですか?

注:生成されたシートを開き、すべてのセルでEnterキーを押した後でのみ、数式が評価されます。

4

1 に答える 1

1

あなたのセルが数字として追加されてもよろしいですか?

そうでない場合は、次のようなことを試してください。

if(type.equals("String")) {
   cell.setCellValue (value.toString());
} else if (type.equals("int")) {
   cell.setCellValue(Integer.parseInt(value.toString()));
} else if (type.equals("double")) {
   cell.setCellValue(Double.parseDouble(value.toString()));
}
于 2013-03-05T09:18:21.027 に答える