Class that knows how to read Excel worksheets containing group data.
Call ReadWorksheet to read the group worksheets.
Inheritance: WorksheetReaderBase
コード例 #1
0
ファイル: WorkbookReader.cs プロジェクト: yesbb12/ParallelBFS
        ReadWorkbookInternal
        (
            Microsoft.Office.Interop.Excel.Workbook workbook,
            ReadWorkbookContext readWorkbookContext
        )
        {
            Debug.Assert(readWorkbookContext != null);
            Debug.Assert(workbook != null);
            AssertValid();

            if (readWorkbookContext.PopulateVertexWorksheet)
            {
                // Create and use the object that fills in the vertex worksheet.

                VertexWorksheetPopulator oVertexWorksheetPopulator =
                    new VertexWorksheetPopulator();

                try
                {
                    oVertexWorksheetPopulator.PopulateVertexWorksheet(
                        workbook, false);
                }
                catch (WorkbookFormatException)
                {
                    // Ignore this type of error, which occurs when the vertex
                    // worksheet is missing, for example.
                }
            }

            // Create a graph with the appropriate directedness.

            PerWorkbookSettings oPerWorkbookSettings =
                new PerWorkbookSettings(workbook);

            IGraph oGraph = new Graph(oPerWorkbookSettings.GraphDirectedness);

            // Read the edge worksheet.  This adds data to oGraph,
            // ReadWorkbookContext.VertexNameDictionary, and
            // ReadWorkbookContext.EdgeIDDictionary.

            EdgeWorksheetReader oEdgeWorksheetReader = new EdgeWorksheetReader();

            oEdgeWorksheetReader.ReadWorksheet(workbook, readWorkbookContext,
                                               oGraph);

            oEdgeWorksheetReader = null;

            // Read the vertex worksheet.  This adds metadata to the vertices in
            // oGraph; adds any isolated vertices to oGraph and
            // ReadWorkbookContext.VertexNameDictionary; and removes any skipped
            // vertices (and their incident edges) from
            // ReadWorkbookContext.VertexNameDictionary,
            // ReadWorkbookContext.EdgeIDDictionary, and oGraph.

            VertexWorksheetReader oVertexWorksheetReader =
                new VertexWorksheetReader();

            oVertexWorksheetReader.ReadWorksheet(workbook, readWorkbookContext,
                                                 oGraph);

            oVertexWorksheetReader = null;

            if (readWorkbookContext.ReadGroups)
            {
                // Read the group worksheets.  This adds metadata to the vertices
                // in oGraph and to oGraph itself.

                GroupWorksheetReader oGroupWorksheetReader =
                    new GroupWorksheetReader();

                oGroupWorksheetReader.ReadWorksheet(workbook,
                                                    readWorkbookContext, oGraph);

                oGroupWorksheetReader = null;

                // Add to the graph any collapsed group attributes that can only be
                // added after the workbook is read.

                CollapsedGroupAttributeAdder.AddCollapsedGroupAttributes(
                    workbook, readWorkbookContext, oGraph);
            }

            return(oGraph);
        }
コード例 #2
0
    ReadWorkbookInternal
    (
        Microsoft.Office.Interop.Excel.Workbook workbook,
        ReadWorkbookContext readWorkbookContext
    )
    {
        Debug.Assert(readWorkbookContext != null);
        Debug.Assert(workbook != null);
        AssertValid();

        if (readWorkbookContext.PopulateVertexWorksheet)
        {
            // Create and use the object that fills in the vertex worksheet.

            VertexWorksheetPopulator oVertexWorksheetPopulator =
                new VertexWorksheetPopulator();

            try
            {
                oVertexWorksheetPopulator.PopulateVertexWorksheet(
                    workbook, false);
            }
            catch (WorkbookFormatException)
            {
                // Ignore this type of error, which occurs when the vertex
                // worksheet is missing, for example.
            }
        }

        // Create a graph with the appropriate directedness.

        PerWorkbookSettings oPerWorkbookSettings =
            new PerWorkbookSettings(workbook);

        IGraph oGraph = new Graph(oPerWorkbookSettings.GraphDirectedness);

        // Read the edge worksheet.  This adds data to oGraph, 
        // ReadWorkbookContext.VertexNameDictionary, and
        // ReadWorkbookContext.EdgeIDDictionary.

        EdgeWorksheetReader oEdgeWorksheetReader = new EdgeWorksheetReader();

        oEdgeWorksheetReader.ReadWorksheet(workbook, readWorkbookContext,
            oGraph);

        oEdgeWorksheetReader = null;

        // Read the vertex worksheet.  This adds metadata to the vertices in
        // oGraph; adds any isolated vertices to oGraph and
        // ReadWorkbookContext.VertexNameDictionary; and removes any skipped
        // vertices (and their incident edges) from
        // ReadWorkbookContext.VertexNameDictionary,
        // ReadWorkbookContext.EdgeIDDictionary, and oGraph.

        VertexWorksheetReader oVertexWorksheetReader =
            new VertexWorksheetReader();

        oVertexWorksheetReader.ReadWorksheet(workbook, readWorkbookContext,
            oGraph);

        oVertexWorksheetReader = null;

        if (readWorkbookContext.ReadGroups)
        {
            // Read the group worksheets.  This adds metadata to the vertices
            // in oGraph and to oGraph itself.

            GroupWorksheetReader oGroupWorksheetReader =
                new GroupWorksheetReader();

            oGroupWorksheetReader.ReadWorksheet(workbook,
                readWorkbookContext, oGraph);

            oGroupWorksheetReader = null;

            // Add to the graph any collapsed group attributes that can only be
            // added after the workbook is read.

            CollapsedGroupAttributeAdder.AddCollapsedGroupAttributes(
                workbook, readWorkbookContext, oGraph);
        }

        return (oGraph);
    }