GrapeCity.devlog

グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の最新情報をお届けします。製品のTIPSや発売情報、イベントのお知らせなどをいち早く発信中です。

ExcelのオートフィルをSPREAD for WPFで実現する方法

最強の表計算・グリッドコントロールとして多くの開発現場で採用されてきたSPREAD(スプレッド)。この記事ではWPFプラットフォームに対応した「SPREAD for WPF 2.0J」の機能を紹介します。

ドラッグフィル

Excelで、セルの右下にマウスポインタを合わせてドラッグ、連続データを設定できるオートフィル機能を普段から活用されている方も多いと思います。連番データを大量に入力するケースでは欠かせません。
Excelと同様の操作性を提供するSPREADでも、Excelのオートフィルに該当する機能を提供しています。それがドラッグフィルです。

SPREADのドラッグフィル

ドラッグフィル

コントロールのCanUserDragFillプロパティをTrueに設定すると、SPREADでドラッグフィルを有効にできます。
SPREAD for WPF 2.0J以降では、このドラッグフィルがパワーアップし、数字を含む文字列の連続コピー、および既定フィル動作の制御が可能になりました。

数字を含む連続コピー

数字を含む文字列は以下のパターンに対応していますので、より多様な連続データを操作できます。

文字列 + 数字 数字 + 文字列 文字列 + 数字 + 文字列
「ABC-001」をドラッグ 「1組」をドラッグ 「第1回」をドラッグ
ABC-001 第1組 第1回

既定フィル動作の制御

SPREADの既定動作もExcel同様、フィルハンドルをドラッグすると連続データを設定します。
また、[Ctrl]キーを押しながらドラッグするとセルをコピーします。 この既定動作は、コントロールのDefaultDragFillTypeプロパティで変更できます。

既定動作の変更は、フィルメニューを非表示に設定する場合、より効力を発揮するように思います。
Excelライクなフィルメニューですが、アプリケーションの要件によっては、こうしたメニューでユーザーが動作を変更することを禁止したい場合があります。
このような場合、フィルメニューを非表示に設定して既定動作を要件どおりに設定すると、ドラッグフィルの動作を完全に制御できます。

以下の画像は、フィルメニューを非表示に、ドラッグフィルの既定動作をコピーに設定した例です。

操作中 操作終了
セルがコピーされる フィルメニューは非表示

以下、フィルメニューを非表示に設定し、ドラッグフィルの既定動作をコピーに設定するサンプルコードです。
フィルメニューを非表示に設定するには、WPFのスタイルを使用します。XAMLを使用すると、以下のように簡潔に記述できます。

<!--ドラッグフィルの既定動作をコピーに設定-->
<sg:GcSpreadGrid CanUserDragFill="True" 
         DefaultDragFillType="CopyCells">
     <sg:GcSpreadGrid.Resources>
     <!--フィルメニューを非表示-->
         <Style TargetType="sg:DragFillSmartTag">
            <Setter Property="Visibility" Value="Collapsed"/>
         </Style>
     </sg:GcSpreadGrid.Resources>
</sg:GcSpreadGrid>

SPREAD for WPFの機能を体感

.NET FrameworkのClick Once機能を利用したデモを公開しています。
Windows PCにWebサイトからインストールして、SPREAD for WPFの機能を実際にお試しいただけます。

グレープシティ株式会社ではエンジニア経験者を幅広く募集しています。