ExcelOutput(ExcelPOIOutput)コンポーネントで書き込んだ値の計算結果を取得すると、計算前の値が取得されるのですが?

次のような処理を行った場合、取得されるのは計算前の値となります。この動作は不具合ではなく、Excelファイルの仕様に起因しています。

サンプルのシート

A1 50
B1  50
C1 =A1+B1(100)
  1. 上記シートでA1に100、B1に100の値をExcelOutput(ExcelPOIOutput)コンポーネントで書き込んで保存する
  2. 直後にExcelInput(ExcelPOIInput)コンポーネントでC1の値を取得する
  3. 計算結果の200ではなく更新前の値である100が取得される

Microsoft Excelの仕様では、Excelファイルの中にある計算式の再計算はExcelソフトでファイルが開かれるときに行われ、その後ファイルを保存することにより計算結果が保存されます。そのため、ExcelOutput(ExcelPOIOutput)コンポーネントで値を書き込んだ直後では、保存されている値(計算前の値)を取得することになります。

このような場合、フローで計算式の再計算を行ってその結果をExcelOutput(ExcelPOIOutput)コンポーネントで書き込むなどの対応が必要です。

この記事は役に立ちましたか?
3人中2人がこの記事が役に立ったと言っています

このセクションの記事

他のキーワードで検索する