グレープシティの開発支援ツールはExcel互換機能を搭載するものが多々あります。
この記事で紹介するDioDocs(ディオドック)以外では、SPREAD(スプレッド)がその代表格で、各種プラットフォームに対応したコンポーネントを提供しています。
SPREAD(スプレッド)ー Windows Forms/WPF/ASP.NET Web Forms/JavaScript | グレープシティ株式会社
そのSPREADを利用し、表示したデータをExcelファイルに保存する際に、属性(Excelファイルのプロパティで確認できる作成者情報など)を設定する手順を解説した記事が公開されています。
Excelファイルを操作するライブラリDioDocs(ディオドック)でも、属性や表示方法を指定できます。
この記事ではDioDocs for Excelを利用して、作成するExcelファイルに属性を設定する方法を解説します。
なお、DioDocsを利用してExcelファイルを作成する方法は別の記事の説明をご覧ください。
ブックの保護機能
DioDocsで作成したExcelファイルを保存する場合、オプションを指定することができます。
XlsxSaveOptions
クラスのPassword
にパスワードを設定して保存することで、Excelファイルが保護されます。
// ワークブックの作成 Workbook workbook = new Workbook(); // ワークシートの取得 IWorksheet worksheet = workbook.ActiveSheet; // セル範囲を指定して文字列を設定 worksheet.Range["C3"].Value = "Hello World!"; // オプションにパスワードを設定 XlsxSaveOptions options = new XlsxSaveOptions(){Password = "981"}; // オプションを指定してファイルを保存 workbook.Save("Result1.xlsx",options);
パスワード付Excelファイルに保存
*1デモで紹介しています。
ワークブックのビューを指定する
Excelファイルを開いた時の表示スタイルであるビューを指定することができます。
IWorkbookView
インタフェースを使用して以下の設定を組み合わせて指定可能です。
プロパティ | 内容 |
---|---|
DisplayHorizontalScrollBar | 水平スクロールバーを表示/非表示 |
DisplayVerticalScrollBar | 垂直スクロールバーを表示/非表示 |
DisplayWorkbookTabs | ワークブックのタブを表示/非表示 |
TabRatio | ワークブックのタブ領域の幅とウィンドウの水平スクロールバーの幅との比率を doubleで指定、デフォルト値は0.6 |
スクロールバーの表示/非表示はわかりますが、TabRatio
は文章だとわかりにくいです。
以下はファイル出力用のコードと結果のExcelファイルです。
矢印で示したように、TabRatio
の設定値によってタブを表示する領域の比率が変わります。
ワークブックビューの構成*2デモで紹介しています。
ワークシートのビューを指定する
似た名前でややこしいですが、こちらではワークシートのビュー設定を解説します。 Excelファイルを開いたときの各ワークシートの表示方法に関する設定です。
IWorksheetView
インタフェースでは、グリッド線、ヘッダー、ルーラーの表示/非表示など12の項目についてビュー設定を指定するプロパティを提供しています。
プロパティの詳細は製品ヘルプに記載があります。
IWorksheetView インターフェース プロパティ
以下のサンプルコードでは、2つのシートに同じ値を設定していますが、Sheet2
のビューではグリッド線を非表示にしています。 また、セルに数式を設定した場合に、表示されるのは計算結果ではなく数式そのものです。
// ワークブックの作成 Workbook workbook = new Workbook(); // ワークシートを1つ追加してそれぞれを取得 workbook.Worksheets.Add(); IWorksheet worksheet = workbook.Worksheets[0]; IWorksheet worksheet2 = workbook.Worksheets[1]; // セル範囲を指定して値、数式を設定 worksheet.Range["C3"].Value = "Hello World!"; worksheet.Range["C4"].Formula = "=LEN(C3)"; worksheet.Range["C5"].Value = 0; // C列の内容をすべてSheet2にコピー worksheet.Range["C:C"].Copy(worksheet2.Range["C:C"]); //2つめのワークシートのビューを構成 IWorksheetView sheetView2 = workbook.Worksheets[1].SheetView; sheetView2.DisplayGridlines = false; // グリッド線は非表示 sheetView2.DisplayFormulas = true; // 値ではなく数式を表示 sheetView2.DisplayZeros = false; // セルの値「0」は非表示 // ファイルを保存 workbook.Save("Result_SheetView.xlsx");
実行結果のExcelファイルは以下のようになります。上段のSheet1と下段のSheet2では表示が異なります。
ワークシートビューの構成*3デモで紹介しています。
ワークシートの保護
はじめに紹介したのは、パスワードを利用したワークブックの保護です。こちらで紹介するのはワークシート保護、つまりシートごとに追加や更新の許可を設定します。
ワークシートの保護は、WorksheetのProtection
プロパティで制御します。true
を指定した場合に対象のワークシートは保護されます。
具体的な保護の内容は、ProtectionSettings
プロパティに指定します。
ワークシートのProtectionSettings
プロパティで、IProtectionSettings
インタフェースで定義されたワークシートで使用可能なさまざまなタイプの保護オプションを指定します。
指定できるオプションは以下の通りです。
名前 | 保護されているワークシートに指定するオプション |
---|---|
AllowFormattingCells | セルの書式設定を許可 |
AllowDeletingRows | 行の削除を許可 |
AllowDeletingColumns | 列の削除を許可 |
AllowFormattingRows | 行の書式設定を許可 |
AllowFormattingColumns | 列の書式設定を許可 |
AllowInsertingRows | 行の挿入を許可 |
AllowInsertingColumns | 列の挿入を許可 |
AllowInsertingHyperlinks | ハイパーリンクの挿入を許可 |
AllowSorting | ソートオプションを許可 |
AllowFiltering | オートフィルタの利用をユーザーに許可 |
AllowUsingObjects | オブジェクトの利用をユーザーに許可 |
AllowUsingPivotTables | ピボットテーブルの利用をユーザーに許可 |
以下のコードでは、行の挿入と削除を許可しています。
// ワークシートを保護 worksheet.Protection = true; // 行と列の追加と削除を許可 worksheet.ProtectionSettings.AllowInsertingRows = true; worksheet.ProtectionSettings.AllowDeletingRows = true; worksheet.ProtectionSettings.AllowInsertingColumns = true; worksheet.ProtectionSettings.AllowDeletingColumns = true;
下図のように、保護を指定したSheet1のコンテキストメニューでは「削除」「挿入」がグレイアウトされていますが、Sheet2では「削除」ができるようになっています。
ワークシートの保護*4デモで紹介しています。
Excelファイルの仕上げ
このようにDioDocsでは、作成したExcelファイルをユーザーが開いた時の状態について、各種指定が可能です。
シートの内容もスタイルや書式などで各種設定できますが、見た目だけでなく使い勝手の部分でもExcelファイルとして仕上った状態に設定できます。
DioDocs for Excelの機能
各機能は、以下の各デモアプリケーションで体験できます。
弊社Webサイトでは、製品の機能を気軽に試せるデモアプリケーションやトライアル版も公開していますので、こちらもご確認いただければと思います。
また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。