DioDocs for Excel
DioDocs for Excel
アウトライン列の追加
機能 > グループ化 > アウトライン列の追加

アウトライン列を使用することで大領のデータをグループに分けて編成できます。

DioDocs for Excelでは、アウトライン列を追加して階層的なデータをツリービューで表示でき、ビューから表示・非表示することができます。IWorksheetインタフェースのOutlineColumnプロパティを使用してアウトライン列を追加します。アウトライン列を追加すると、行アウトラインが自動的に作成されます。ワークシートをExcelとして保存する場合、アウトライン列が表示されませんが、行アウトラインが保持されます。

セルのインデントレベルは、IRangeインタフェースのIndentLevelプロパティを使用して設定できます。最大インデントレベルは、IOutlineColumnインタフェースのMaxLevelプロパティを使用して設定できます。MaxLevelプロパティは、デフォルト値が10です。

現在のアウトライン列オプションとインデントに基づいてツリーデータ構造を再構築するには、IOutlineColumnインタフェースのRefreshメソッドを使用します

アウトライン列をPDFにエクスポートでき、SpreadJSと対話するためにJSONにもインポートまたはエクスポートすることができます。

コードの使用

次のサンプルコードは、アウトライン列を作成する方法を示します。

C#
コードのコピー
 IWorkbook workbook = new Workbook();
 IWorksheet worksheet = workbook.Worksheets[0];

    //データを設定します
    object[,] data = new object[,]{
{ "Preface",                                   "1",       1 } ,
{ "Java SE5 and SE6",                          "1.1",     2 },
{ "Java SE6",                                  "1.1.1",  2 },
{ "The 4th edition",                           "1.2",    2 },
{ "Changes",                                   "1.2.1",  3 },
{ "Note on the cover design",                  "1.3",    4 },
{ "Acknowledgements",                          "1.4",    4 },
{ "Introduction",                              "2",      9 },
{ "Prerequisites",                             "2.1",    9 },
{ "Learning Java",                             "2.2",    10 },
{ "Goals",                                     "2.3",    10 },
{ "Teaching from this book",                   "2.4",    11 },
{ "JDK HTML documentation",                    "2.5",    11 },
{ "Exercises",                                 "2.6",    12 },
{ "Foundations for Java",                      "2.7",    12 },
{ "Source code",                               "2.8",    12 },
{ "Coding standards",                          "2.8.1",  14 },
{ "Errors",                                    "2.9",    14 },
{ "Introduction to Objects",                   "3",      15 },
{ "The progress of abstraction",               "3.1",    15 },
{ "An object has an interface",                "3.2",    17 },
{ "An object provides services",               "3.3",    18 },
{ "The hidden implementation",                 "3.4",    19 },
{ "Reusing the implementation",                "3.5",    20 },
{ "Inheritance",                               "3.6",    21 },
{ "Is-a vs. is-like-a relationships",          "3.6.1",  24 },
{ "Interchangeable objects with polymorphism", "3.7",    25 },
{ "The singly rooted hierarchy",               "3.8",    28 },
{ "Containers",                                "3.9",    28 },
{ "Parameterized types (Generics)",            "3.10",   29 },
{ "Object creation & lifetime",                "3.11",   30 },
{ "Exception handling: dealing with errors",   "3.12",   31 },
{ "Concurrent programming",                    "3.13",   32 },
{ "Java and the Internet",                     "3.14",   33 },
{ "What is the Web?",                          "3.14.1", 33 },
{ "Client-side programming",                   "3.14.2", 34 },
{ "Server-side programming",                   "3.14.3", 38 },
{ "Summary",                                   "3.15",   38 }
};
    worksheet.Range["A1:C38"].Value = data;

    //ColumnWidthを設定します
    worksheet.Range["A:A"].ColumnWidthInPixel = 310;
    worksheet.Range["B:C"].ColumnWidthInPixel = 150;

    //IndentLevelを設定します
    for (int i = 0; i < data.GetLength(0); i++)
    {
        worksheet.Range[i, 0].IndentLevel = (int)data[i, 3];
    }

    //詳細行の上にサマリー行を表示します
    worksheet.Outline.SummaryRow = SummaryRow.Above;

    //SJSと対話するときに行アウトラインを表示しないでください。エクスポートされたExcelファイルには行アウトラインが表示されます
    worksheet.ShowRowOutline = false;

    //アウトライン列を設定します
    worksheet.OutlineColumn.ColumnIndex = 0;
    worksheet.OutlineColumn.ShowCheckBox = true;
    worksheet.OutlineColumn.ShowImage = true;
    worksheet.OutlineColumn.MaxLevel = 2;
    worksheet.OutlineColumn.Images.Add(new ImageSource(File.Open("archiverFolder.png", FileMode.Open), ImageType.PNG));
    worksheet.OutlineColumn.Images.Add(new ImageSource(File.Open("newFolder.png", FileMode.Open), ImageType.PNG));
    worksheet.OutlineColumn.Images.Add(new ImageSource(File.Open("docFile.png", FileMode.Open), ImageType.PNG));
    worksheet.OutlineColumn.CollapseIndicator = new ImageSource(File.Open("decreaseIndicator.png", FileMode.Open), ImageType.PNG);
    worksheet.OutlineColumn.ExpandIndicator = new ImageSource(File.Open("increaseIndicator.png", FileMode.Open), ImageType.PNG);

    worksheet.OutlineColumn.SetCheckStatus(0, true);
    worksheet.OutlineColumn.SetCollapsed(1, true);

    //見出しとグリッド線を印刷します
    worksheet.PageSetup.PrintHeadings = true;
    worksheet.PageSetup.PrintGridlines = true;

    //json / excel / pdfに保存します
    workbook.ToJson(new FileStream("outlineColumn1.json", FileMode.Create));
    workbook.Save("outlineColumn1.xlsx");
    workbook.Save("outlineColumn1.pdf");
メモ: Excelでは画像、チェックボックス、展開縮小インディケータの画像はサポートされませんので、Excel出力では表示されません。ただし、PDFやSpreadJSで表示されます。

次の画像は、上記コードのExcel出力を示します。

次の画像は、上記コードのPDF出力を示します。