Smrf.NodeXL.ExcelTemplate.ColumnGroupManager.ShowOrHideColumnGroups C# (CSharp) Method

ShowOrHideColumnGroups() public static method

public static ShowOrHideColumnGroups ( Microsoft workbook, ColumnGroups columnGroups, System.Boolean show, System.Boolean updateUserSettings ) : void
workbook Microsoft
columnGroups ColumnGroups
show System.Boolean
updateUserSettings System.Boolean
return void
    ShowOrHideColumnGroups
    (
        Microsoft.Office.Interop.Excel.Workbook workbook,
        ColumnGroups columnGroups,
        Boolean show,
        Boolean updateUserSettings
    )
    {
        Debug.Assert(workbook != null);

        foreach ( ColumnGroups eColumnGroup in
            Enum.GetValues(typeof(ColumnGroups) ) )
        {
            String sColumnGroup = eColumnGroup.ToString();

            if (eColumnGroup != ColumnGroups.All &&
                (columnGroups & eColumnGroup) != 0 &&
                sColumnGroup.IndexOf("DoNotHide") == -1 &&
                sColumnGroup.IndexOf("InternalUse") == -1
                )
            {
                ShowOrHideColumnGroup(workbook, eColumnGroup, show);
            }
        }

        if (updateUserSettings)
        {
            ColumnGroupUserSettings oColumnGroupUserSettings =
                new ColumnGroupUserSettings();

            ColumnGroups eColumnGroupsToShow =
                oColumnGroupUserSettings.ColumnGroupsToShow;

            if (show)
            {
                eColumnGroupsToShow |= columnGroups;
            }
            else
            {
                eColumnGroupsToShow &= ~columnGroups;
            }

            oColumnGroupUserSettings.ColumnGroupsToShow = eColumnGroupsToShow;
            oColumnGroupUserSettings.Save();
        }
    }

Usage Example

コード例 #1
0
        ActivateRelevantWorksheet
        (
            IEnumerable <GraphMetricColumn> graphMetricColumns,
            Microsoft.Office.Interop.Excel.Workbook workbook
        )
        {
            Debug.Assert(graphMetricColumns != null);
            Debug.Assert(workbook != null);
            AssertValid();

            Boolean bEdgeMetricCalculated     = false;
            Boolean bVertexMetricCalculated   = false;
            Boolean bOverallMetricsCalculated = false;
            Boolean bGroupsCalculated         = false;
            Boolean bGroupMetricCalculated    = false;
            Boolean bWordMetricCalculated     = false;
            Boolean bTopNByMetricCalculated   = false;

            Boolean bShowGraphMetricColumnGroups = false;

            foreach (GraphMetricColumn oGraphMetricColumn in graphMetricColumns)
            {
                switch (oGraphMetricColumn.WorksheetName)
                {
                case WorksheetNames.Edges:

                    bEdgeMetricCalculated        = true;
                    bShowGraphMetricColumnGroups = true;
                    break;

                case WorksheetNames.Vertices:

                    bVertexMetricCalculated      = true;
                    bShowGraphMetricColumnGroups = true;
                    break;

                case WorksheetNames.Groups:

                    if (oGraphMetricColumn.ColumnName ==
                        GroupTableColumnNames.Name)
                    {
                        bGroupsCalculated = true;
                    }
                    else if (oGraphMetricColumn.ColumnName ==
                             GroupTableColumnNames.Vertices)
                    {
                        bGroupMetricCalculated       = true;
                        bShowGraphMetricColumnGroups = true;
                    }

                    break;

                case WorksheetNames.OverallMetrics:

                    bOverallMetricsCalculated = true;
                    break;

                case WorksheetNames.WordCounts:
                case WorksheetNames.WordPairCounts:

                    bWordMetricCalculated = true;
                    break;

                case WorksheetNames.TopNByMetrics:

                    bTopNByMetricCalculated = true;
                    break;

                default:

                    break;
                }
            }

            if (bShowGraphMetricColumnGroups)
            {
                ColumnGroupManager.ShowOrHideColumnGroups(workbook,

                                                          ColumnGroups.EdgeGraphMetrics |
                                                          ColumnGroups.VertexGraphMetrics |
                                                          ColumnGroups.GroupGraphMetrics |
                                                          ColumnGroups.GroupEdgeGraphMetrics,

                                                          true, true);
            }

            // The worksheet to activate should be the one corresponding to the
            // bottommost checked item in the GraphMetricsDialog.

            String sWorksheetNameToActivate = null;

            if (bTopNByMetricCalculated)
            {
                sWorksheetNameToActivate = WorksheetNames.TopNByMetrics;
            }
            else if (bWordMetricCalculated)
            {
                sWorksheetNameToActivate = WorksheetNames.WordCounts;
            }
            else if (bOverallMetricsCalculated)
            {
                sWorksheetNameToActivate = WorksheetNames.OverallMetrics;
            }
            else if (bGroupsCalculated || bGroupMetricCalculated)
            {
                sWorksheetNameToActivate = WorksheetNames.Groups;
            }
            else if (bEdgeMetricCalculated)
            {
                sWorksheetNameToActivate = WorksheetNames.Edges;
            }
            else if (bVertexMetricCalculated)
            {
                sWorksheetNameToActivate = WorksheetNames.Vertices;
            }

            Worksheet oWorksheetToActivate;

            if (
                sWorksheetNameToActivate != null
                &&
                ExcelUtil.TryGetWorksheet(workbook, sWorksheetNameToActivate,
                                          out oWorksheetToActivate)
                )
            {
                ExcelUtil.ActivateWorksheet(oWorksheetToActivate);
            }
        }