Windows Forms用スプレッドシートコンポーネント「SPREAD for Windows Forms(スプレッド)」の新バージョン「17.0J」では、新たに「リボンコントロール」が追加され、さらに .NETの最新LTSバージョン「.NET 8」をサポートしています。
そこで本記事では、「.NET 8」の環境でSPREADデザイナを使用して、17.0Jの新機能である「チャートシート」を設定します。設定した後は作成したアプリケーションを実行し、その機能の動作をチェックします。
目次
開発環境
使用する開発環境は以下です。.NET 6/8に対応しているVisual Studio 2022を使用します。SPREADの .NET 6/8対応モジュールはNuGetパッケージで提供されており、NuGetのサイトまたはインストーラによってインストールされるパッケージ(*.nupkg)を使用することが可能です。
- Visual Studio 2022(バージョン17.10.3)
- GrapeCity.Spread.WinForms.ja(バージョン17.0.1)
SPREAD for Windows Forms 17.0Jを使用するには、製品版またはトライアル版をインストールして製品の認証を行う必要があります。トライアル版は以下からダウンロード可能です。
新規プロジェクトの作成
Visual Studioを開き、プロジェクトテンプレートから「Windows フォーム アプリ」のプロジェクトテンプレートを選択します。
次にプロジェクト名を設定します。今回は「SPREAD-WinForms-Sample」とします。
フレームワークは「.NET 8.0(長期的なサポート)」を選択します。[作成]をクリックして進むと、.NET 8のWindows Formsのプロジェクトが作成されます。
NuGetパッケージをプロジェクトに追加
作成したプロジェクトで .NET 8に対応しているSPREADを使用するには、NuGetパッケージをプロジェクトに追加する必要があります。ソリューションエクスプローラーでプロジェクトを右クリックし「NuGet パッケージの管理」をクリックします。
「NuGetパッケージマネージャー」が表示されます。「参照」タブから「GrapeCity.Spread.WinForms.ja」を検索しインストールします。
フォームにコントロールを追加
インストールが完了するとツールボックスには「Spread for Windows Forms」のタブが表示され次のような項目が追加されています。
これらの項目をフォームにドラッグ&ドロップすることで該当するコントロールをウィンドウに配置することができます。今回は「FpSpread(SPREADコントロール)」をフォームに追加します。追加したコントロールのスマートタグから「親コンテナにドッキングする」をクリックしてフォームにドッキングします。
ソリューションエクスプローラーで「依存関係」-「パッケージ」を開いて内容を確認すると、「GrapeCity.Spread.WinForms.ja (17.0.1)」の「コンパイル時のアセンブリ」として下のようなコンポーネントが登録されていることが分かります。
Windows FormsデザイナーのDPI非対応を有効にする
高解像度のディスプレイでVisual Studioを使用している場合に以下のような情報が表示され、フォームに追加したSPREADコントロールの列と行ヘッダおよびセルが正常に表示されない場合があります。
この現象を解決するには、ソリューションエクスプローラーでプロジェクトをダブルクリックしてプロジェクトファイル(SPREAD-WinForms-Sample.csproj)を開きます。プロジェクトファイルにForceDesignerDPIUnaware
を追加し、値をtrue
に設定します。
また、実行時にも同じようにSPREADコントロールの列と行ヘッダおよびセルが正常に表示されないので、さらにApplicationHighDpiMode
を追加し、値をDpiUnawareGdiSnocaled
に設定しておきます。
このDPI非対応のWindows Formsデザイナーは、.NET 8リリースにあわせたVisual Studioのバージョンアップで登場した機能でVisual Studio 2022 バージョン17.8以降で利用できます。
その後プロジェクトをアンロードして再読み込みを実施します。以下のように表示されればOKです。
SPREADデザイナの起動と設定
ここからはSPREADデザイナを起動し17.0Jで追加された「チャートシート」の設定を行います。チャートシートは通常のシートとは異なりセルがありません。シート全体をチャートが占有する形になります。なお、この機能を使用するには拡張シェイプエンジンを有効にする必要があります。
SPREADコントロールを右クリックして「SPREADデザイナ」を選択します。SPREADデザイナが起動します。
次に拡張シェイプエンジンを有効にします。プロパティグリッド上部のドロップダウンで「スプレッド」を選択し、「Features – EnhancedShapeEngine」をTrueにします。
そしてチャートを挿入します。セルにテストデータを入力した後で「Sheet1」タブを右クリックしコンテキストメニューの[挿入]を選択します。
表示された[挿入]ダイアログで[グラフ]を選択します。この時点ではデータと関連付けされていない空のチャートシートが挿入されます。チャートシートを右クリックして[データの選択]を選択します。
[データソースの選択]ダイアログが表示されたら「Sheet1」を表示してデータの範囲であるセルA1からセルD2を選択します。ダイアログの[OK]ボタンを押して設定は完了です。
チャートシートにデータが反映されます。最後にSPREADデザイナの設定をSPREADコントロールに適用して閉じます。
アプリケーションの実行
Visual Studioからアプリケーションを実行すると次のようなウィンドウが表示され、チャートシートが表示されます。チャートシートはデータソースとして別シート「Sheet1」の値を参照しているので、「Sheet1」の値を変更するとチャートに反映されます。
さいごに
今回ご紹介したように .NET 8でも .NET Frameworkとほとんど同じようにSPREAD for Windows Formsを使うことができます。この記事が、新しいプラットフォームである .NET 8でSPREAD for Windows Formsをご利用いただくきっかけになれば幸いです。
Webサイトでは製品の機能を手軽に体験できるデモアプリケーションやトライアル版も公開しておりますので、こちらもご確認ください。
また、ご導入前の製品に関するご相談、ご導入後の各種サービスに関するご質問など、お気軽にお問合せください。