システム開発ブログ

ExcelCreatorで計算結果が読み取れない?

中村

中村 (2010年10月26日 11:14)
流通システム部

みなさん、こんにちは。

このところ、AccessやExcelを改めて使う機会が増えました。
やはりユーザーにとって使いやすいというのは、一番の需要になるのでしょうね。

特に多いのが、データや帳票をExcelに出力してほしいというご要望です。
出力した結果を、お客様が自由に加工できるというのが魅力なのでしょう。

Webシステムを利用する際に、PHPでは複数のExcel用ライブラリがフリーでも出ていますが、
ASPやASP.NETを利用することの多い私はExcelCreatorを何度か利用しています。

ExcelCreatorはWebサーバー上にOfficeをインストールせずにExcelファイルを
作成することができる優れものです。
また、既にExcelで作成されたファイルからデータを読み取ることもできます。

今回はこのExcelCreatorで少し困ってしまった点について、
解決方法も含めてご紹介します。


ExcelCreatorでは、セルに値を設定することも、計算式を設定することもできます。
元々用意してあったExcelの場合、式を埋め込むとその計算結果が表示されます。
そのまま保存した場合、保存された状態の値をExcelCreatorで読み取ることもできます。

しかし、ASPなどで式を埋め込んだ場合、一旦Excelでファイルを開いて計算させたうえで
保存しなければ、計算結果が取得できないという現象がありました。
式を埋め込んであった場合でも、一旦ExcelCreatorで開いて、式に使用する値を変更しても
計算結果が変わらないという状況です。

これは、ExcelCreatorではそもそもExcelを起動しているわけではないので、
計算式やワークシート関数など、Excel自体の機能は起動しなければ計算されないということのようです。

このため、計算式を埋め込む時には、初期値を一緒に設定するようにします。

Xls1.Cell("A1").Long = 1000
Xls1.Cell("A2").Func = "=A1+500"   '←初期値なしになってしまう。
Xls1.Cell("A2").Func2 "=A1+500", 1500   '←初期値がセットされる。

ここで注意!
計算式をセットするだけなら、Funcプロパティを使用できましたが、
初期値を設定するFunc2はメソッドです。※イコール(=)は不要です。

ちなみに上記のコードはExcelCreator Ver3.0を対象としています。
Ver3.6や.NET用のVer5.0以降では、Funcメソッドのみに統一され、初期値も設定可能になったようです。

計算式を埋め込んでおくことができるExcelで初期値をいちいち設定するというのは
少し使い勝手が悪い印象を受けますが、そもそも式を埋め込んでおくようなケースであれば
一度開いて利用することを前提とすることもできるでしょう。
ツールの注意点を理解して、うまく利用していきたいですね。

システムのトラブル解決を承ります。すぐにシステムリフォームを体験できますシステム診断・システムリフォームのお申し込みはこちらから。

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

ページのトップ