今回は、「DioDocs(ディオドック)」で「外部参照」を設定して他のExcelワークブックにあるワークシートに含まれるセルの値を参照する方法を紹介したいと思います。こちらは2021年2月17日(水)にリリースされた「DioDocs V4J」でDioDocs for Excelに追加された機能です。
Excelの計算式を設定するには?
DioDocsでExcelワークシートのセルに計算式を設定するには、Formulaプロパティを使用します。以下はC1セルにSUM関数を使った計算式「=SUM(A1:B1)」をFormulaプロパティに設定して、A1セルとB1セルの値を合計するコードです。
// 新規ワークブックの作成
var workbook = new Workbook();
// 値を設定
workbook.Worksheets[0].Range["A1"].Value = 150;
workbook.Worksheets[0].Range["B1"].Value = 200;
// 計算式を設定
workbook.Worksheets[0].Range["C1"].Formula = "=SUM(A1:B1)";
// EXCELファイル(.xlsx)に保存
workbook.Save("formula-sum.xlsx");
外部参照を設定するには?
DioDocsでExcelワークシート内のセルに外部参照を設定するには、「クロスワークブック数式」を使用します。以下はE5セルに先程紹介したFormulaプロパティにクロスワークブック数式として「='[workbook1.xlsx]Sheet1′!B2」を設定して、別のExcelワークブック「workbook1.xlsx」のワークシート「Sheet1」のB2セルを参照します。
// 新規ワークブックの作成
var workbook = new Workbook();
// 外部参照式を設定
workbook.Worksheets[0].Range["E5"].Formula = "='[workbook1.xlsx]Sheet1'!B2";
// 外部ワークブックを読み込み
var externalworkbook = new Workbook();
externalworkbook.Open("workbook1.xlsx");
// 外部参照を更新
foreach (var item in workbook.GetExcelLinkSources())
{
workbook.UpdateExcelLink(item, externalworkbook);
}
// EXCELファイル(.xlsx)に保存
workbook.Save("crossworkbookformula.xlsx");
// PDF(.pdf)ファイルに保存
workbook.Save("crossworkbookformula.pdf");
外部参照を利用した集計を行ってみる
DioDocsで外部参照を利用した集計を実行してみます。以下のような集計用のExcelワークブック「sendai.xlsx」を準備して、別のExcelワークブック「aoba.xlsx」、「izumi.xlsx」、「miyagino.xlsx」、「taihaku.xlsx」を参照する外部参照を設定します。
外部参照で参照するExcelワークブック「aoba.xlsx」、「izumi.xlsx」、「miyagino.xlsx」、「taihaku.xlsx」は、それぞれ以下のような小計をD4~D9セルに持っています。
先程と同じように集計用のExcelワークブック「sendai.xlsx」で集計値を表示するB4~B9セルのFormulaプロパティに「='[aoba.xlsx]Sheet1′!D4+'[izumi.xlsx]Sheet1′!D4+'[miyagino.xlsx]Sheet1′!D4+'[taihaku.xlsx]Sheet1′!D4」を設定します。これで各ワークブックの小計を参照して集計することができます。
// 集計用のワークブックを読み込み
var workbook = new Workbook();
workbook.Open("sendai.xlsx");
// 外部参照を設定
workbook.Worksheets[0].Range["B4:B9"].Formula = "='[aoba.xlsx]Sheet1'!D4+'[izumi.xlsx]Sheet1'!D4+'[miyagino.xlsx]Sheet1'!D4+'[taihaku.xlsx]Sheet1'!D4";
// 外部ワークブックを読み込み(青葉区)
var aoba = new Workbook();
aoba.Open("aoba.xlsx");
// 外部ワークブックを読み込み(泉区)
var izumi = new Workbook();
izumi.Open("izumi.xlsx");
// 外部ワークブックを読み込み(宮城野区)
var miyagino = new Workbook();
miyagino.Open("miyagino.xlsx");
// 外部ワークブックを読み込み(太白区)
var taihaku = new Workbook();
taihaku.Open("taihaku.xlsx");
// 外部参照を更新
workbook.UpdateExcelLink("aoba.xlsx", aoba);
workbook.UpdateExcelLink("izumi.xlsx", izumi);
workbook.UpdateExcelLink("miyagino.xlsx", miyagino);
workbook.UpdateExcelLink("taihaku.xlsx", taihaku);
workbook.Calculate();
// EXCELファイル(.xlsx)に保存
workbook.Save("crossworkbookformula2.xlsx");
// PDFファイル(.pdf)に保存
workbook.Save("crossworkbookformula2.pdf");
実行すると以下のように外部参照を持つセルB4~B9で集計結果を確認できます。
今回紹介した機能を記載しているデモはこちらです。
今回紹介した機能を記載しているサンプルはこちらです。
DioDocsは2021年2月17日に最新バージョンの「V4J」をリリースしています。
弊社Webサイトでは、製品の機能を気軽に試せるデモアプリケーションやトライアル版も公開していますので、こちらもご確認いただければと思います。
また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。