Page up▲

SpreadSheetGear2010

xls.jpg


Naotenが仕事で作る業務用アプリケーションでは、
入力したデータを最終的にExcelファイルに出力したい、
等の要望がある。

ペーパーレスになってきている社会といえども、
結局最終的には、データを紙に印刷して、
署名や捺印をして正式な書類とする事が多い、と言う事なのだろう。

(以下、追記へ。)
 
 
んで、プログラム上でExcelファイルを制御する場合、
VisualStudio系のプログラムであれば一般的に、
COMオブジェクトと言うのを利用する。

Excelでは、Excelを操作する為の汎用的な機能をプログラマに提供していて、
ExcelをインストールすればExcelを制御できるCOMオブジェクトもインストールされる。

Microsoft Excel 9.0 Object Library

とかがそう。
(インストールされているExcelのバージョンによって
 10.0だったり、8.0だったり別の数字だったりする。)


これをプログラムから操作してExcelのブックを読み込んだり、生成したり、
値を書き込んだりする訳だけれど、注意点がいくつかある。

1.アプリケーション実行環境にExcelがインストールされていないといけない。
  使用する機能によってはインストールするバージョンも重要。

2.オブジェクトの解放をちゃんとしないとExcelプロセスが際限なく増える。
  初心者が陥りやすい罠。

3.とにかく処理が遅い。
  色々なテクニックで若干の速度向上は可能ではあるが限界がある。


1は、お客さんにちゃんと説明して理解してもらい、
2は、極力、セオリーを守ってきちんとメモリーを解放でなんとかなるのだけれど、
3に関してはもう、どうしようもない。

実際に運用上それだけ出力するかは別として、
やりようによっては数千件のデータをExcel出力出来るので、
試しに膨大な件数のデータ処理を実行してみると、
Excelファイル作成に5分~10分とかかかるのだ。

前フリが長くなったけれど、そこでウチではSpreadSheetGear2010を導入した。

header.gif
『SpreadsheetGear 開発者ライセンス(サブスクリプション付き)』の購入で139,650円。
ちなみにサブスクリプションの更新に年額73,500円かかる。


こいつのスゴイ所は


1.アプリケーション実行環境にExcelがインストールされてなくても良い。

2.100%マネージ コードで作成されているのでメモリ解放漏れなどがない。

3.とにかく処理が早い。


おまけに

WindowsアプリだけでなくASP.NETなどのWEBアプリへの組み込みも可能な上、
GrapeCity社の開発支援アプリの様なサーバーラインセンス費用が別途かからない。
(GrapeCityは1サーバー導入に10万以上かかる。)

また、
COMオブジェクトを操作してExcelを制御する方法と、
極めて近い方法でコーディングが可能。


なのである。

実際、とあるシステムのExcel出力機能を、
COMオブジェクト制御から
SpreadSheetGear制御にソースコードを書き替えるのに
10分ほどしかかからなかった。


で、今まで7分以上かかっていたExcel作成時間が、2秒になった。
あくまでオブジェクトをExcelからSpreadSheetGearに変えただけであり、
基本的なロジックは変わっていない。

なんぞこれ?(^^;


貧弱なソフトウェアハウスとしては、
高速なExcel作成機能を提供できる、と言うのは、
強力な付加価値となるのではないだろうか。


いや、なったらいいな?(希望的観測


唯一の弱点は、GrapeCity製品と比べてマイナーで、
WEBを調べても全くと言って良いほど情報が無い事、かな?
まぁ、そこはサブスクリプションでカバーするしか無い。
(サブスクリプションには、1年間の無償アップグレード、
 日本語 E-Mail サポート、開発元 (米国 SpreadsheetGear 社) からの
 電話サポート (英語のみ)
が含まれる。もう何回もメールした(^^;)


っと、2011年版が発売しなかったSpreadSheetGear。
ちょっと気になったので米国の開発元に問い合わせてみた所、こんな回答を得た。


SpreadsheetGear 製品の開発状況について、現在のところ、
次期メジャーバージョンは、今年の前半にリリースが予定されている。

次回のメジャーリリースで予定されている新機能は以下になります。
- Silverlight / WPF 対応コントロール
- マルチコア CPU に対応したマルチスレッド再計算によるパフォーマンス向上
- 32-bit/64-bit 環境におけるメモリ使用の最適化
- Excel 2007 で追加されたビルトイン関数のサポート
(IFERROR、SUMIFS、AVERAGEIF、AVERAGEIFS、COUNTIFS など)
- Silverlight および WPF コントロールでのリッチ テキストの描画機能




どうやらしばしサブスクリプションの更新が続きそうである。




COMオブジェクトを制御してのExcelの遅さに辟易している方は、
本当に激速になるので
公式サイトから体験版でも導入して試してみてくださいな~。
きっと目から鱗ですぜ。

関連サイト
公式サイトXLSoft SpreadSheetGear2010





SpreadSheetGearではほぼ、Excelと同等の機能を有しているし、
本家Excelで出来ない事も出来るが、
一部、本家で出来るがこちらで出来ない機能もある。

参考までに、Naotenが発見したそれらを書きだしておく。

・シェイプ、イメージのコピー
 レンジやシェイプそのものを指定してのコピーに対応していない。
 生成することは可能なので、生成して関連プロパティの総コピーか、
 シートコピーする際は、そのシートに所属されるシェイプもコピーされるので、
 どちらかで対応するしか無い。

・単一セル内で複数のフォント書式が使えない。
 例えば、Excelで以下のようなセルがあるとする。
  
名前(必須


 名前、と書いてあるセル内に必須と赤文字で書いてあるが、
 これがSpreadSheetGearでは再現できない。

 そう言ったExcelファイルを読み込むと以下となる。
  
名前(必須)


シェイプやイメージのコピーに関しては
「将来的には対応する予定ですが、明確な時期については未定です。」
と問い合わせに回答を受けているのでいつかは可能?
単一セル内の複数書式に関しては聞いてないから不明。

 

Page up▲

LOGO1

Post a Comment

comments

Page up▲

Post a Commentpac

Private message

Page up▲

Designed by mi104c.
Copyright © 2020 直天堂のカステラ, all rights reserved.
08 | 2020/09 | 10

sun

mon

tue

wed

thu

fri

sat

- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 - - -

Page up▲

  • 最新記事のRSS
  • 最新コメントのRSS
  • 最新トラックバックのRSS