次のような処理を行った場合、取得されるのは計算前の値となります。この動作は不具合ではなく、Excelファイルの仕様に起因しています。
例
サンプルのシート A1 50 B1 50 C1 =A1+B1(100)
- 上記シートでA1に100、B1に100の値をExcelOutput(ExcelPOIOutput)コンポーネントで書き込んで保存する
- 直後にExcelInput(ExcelPOIInput)コンポーネントでC1の値を取得する
- 計算結果の200ではなく更新前の値である100が取得される
Microsoft Excelの仕様では、Excelファイルの中にある計算式の再計算はExcelソフトでファイルが開かれるときに行われ、その後ファイルを保存することにより計算結果が保存されます。そのため、ExcelOutput(ExcelPOIOutput)コンポーネントで値を書き込んだ直後では、保存されている値(計算前の値)を取得することになります。
このような場合、フローで計算式の再計算を行ってその結果をExcelOutput(ExcelPOIOutput)コンポーネントで書き込むなどの対応が必要です。