SimpleGraph-Excel: Difference between revisions

From BITPlan Wiki
Jump to navigation Jump to search
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
=SimpleGraphModule=
{{SimpleGraphModule
{{SimpleGraphModule
|name=Excel
|name=Excel
|logo=File:Microsoft Excel 2013 logo.svg
|logo=File:Microsoft Excel 2013 logo.svg
|documentation=makes Microsoft Excel workbooks accessible via the Apache POI API
|modulename=excel
|systemname=ExcelSystem
|url=https://en.wikipedia.org/wiki/Microsoft_Excel
|url=https://en.wikipedia.org/wiki/Microsoft_Excel
|apiname=Apache POI XSSF/HSSF
|apiname=Apache POI XSSF/HSSF
|apiurl=https://poi.apache.org/spreadsheet/quick-guide.html
|apiurl=https://poi.apache.org/components/spreadsheet/quick-guide.html
|documentation=makes Microsoft Excel workbooks accessible via the Apache POI API
|storemode=property
|storemode=property
|viewmode=hidden
|viewmode=hidden
}}
}}
= Mental Model =
== Mapping rules ==
# Each Vertex type (by label) is converted to an Excel sheet
# Each Edge type (by label) is converted to an Excel sheet
# Each vertex is converted to a row
# Each vertex property is converted to a cell
# Each edge is converted to a row
# Each edge property is converted to a cell
# The header row for Vertices has a column for each property key
# The header for for Edges has a column for each property key + an in and and out column
# The in and out header columns for edges have the label of the corresponding vertex in parentheses
== UML diagram ==
<uml>
 
  hide circle
  package Excel {
  class Workbook {
    name
  }
  class Sheet {
    name
  }
  class Row {
    rownumber
  }
  class Cell {
    columnnumber
    value
  }
  Workbook "1" -> "n" Sheet
  Sheet "1" -> "title 1" Row
  Sheet "1" -> "n" Row
  Row "1" -> "n" Cell
}
package TinkerPop {
  class Property {
    name
    value
  }
  class Vertex {
    id
    label
  }
  class Edge {
    id
    label
  }
  Edge -> "1 in" Vertex
  Edge -> "1 out" Vertex
  Vertex -> "n properties" Property
  Edge -> "n properties" Property
  Edges -> "n edges" Edge
  Vertices -> "n Vertices" Vertex
}
Cell - Property
Edge - Sheet
Vertex - Sheet
</uml>
= Examples =
== Modern ==
<uml>
  hide circle
  package Modern {
  note top of person: 4
  class person { 
    name
    age
  }
  note top of software: 2
  class software { 
    name
    lang
  }
  }
  person --> person: knows
  note on link: 2
  person --> software: created
  note on link: 4
</uml>
[[File:modern.xlsx]]
== AirRoutes ==
The UML diagram and excel table is not fully consistent with the graph. The graph can have contains edges between airport and country.
<uml>
  hide circle
  package AirRoutes {
  note top of airport: 3374
  class airport { 
    code
    longest
    city
    elev
    icao
    lon
    type
    region
    runways
    lat
    desc
    country
  }
  note top of version: 1
  class version { 
    code
    type
    desc
  }
  note top of country: 237
  class country { 
    desc
    code
    type
  }
  note top of continent: 7
  class continent { 
    code
    type
    desc
  }
  }
  airport --> airport: route
  note on link: 43400
  continent --> airport: contains
  note on link: 6748
</uml>
[[File:air-routes.xlsx]]
<source lang='java'>
@Test
  public void testCreateExcelAirRoutes() throws Exception {
    ExcelSystem es = new ExcelSystem();
    Graph graph = TestTinkerPop3.getAirRoutes();
    GraphTraversalSource g = graph.traversal();
    // es.setDebug(true);
    Workbook wb = es.createWorkBook(g);
    assertEquals(6, wb.getNumberOfSheets());
    es.save(wb, testAirRouteFileName);
}
</source>
== Railway ==
<uml>
hide circle
package Railway {
  class City {
    name
    lat
    lon
  }
  class Station {
    name
    lat
    lon
  }
  class Route {
    linenumber
  }
  class Section {
    id
  }
  Station "1" - "city 1" City
  Route "1" - "to 1" City
  Route "1" - "from 1" City
  Route "1" - "sections n" Section
  Station "1" - "sections n" Section
}
</uml>
= Links =
= Links =
* https://stackoverflow.com/questions/tagged/poi
* https://stackoverflow.com/questions/tagged/poi

Latest revision as of 08:06, 30 October 2018

SimpleGraphModule

Microsoft Excel 2013 logo.svg

SimpleGraph Excel module

The SimpleGraph Excel module makes Microsoft Excel workbooks accessible via the Apache POI API see Apache POI XSSF/HSSF.

Sources

Mental Model

Mapping rules

  1. Each Vertex type (by label) is converted to an Excel sheet
  2. Each Edge type (by label) is converted to an Excel sheet
  3. Each vertex is converted to a row
  4. Each vertex property is converted to a cell
  5. Each edge is converted to a row
  6. Each edge property is converted to a cell
  7. The header row for Vertices has a column for each property key
  8. The header for for Edges has a column for each property key + an in and and out column
  9. The in and out header columns for edges have the label of the corresponding vertex in parentheses

UML diagram

Examples

Modern

File:Modern.xlsx

AirRoutes

The UML diagram and excel table is not fully consistent with the graph. The graph can have contains edges between airport and country.

File:Air-routes.xlsx

@Test
  public void testCreateExcelAirRoutes() throws Exception {
    ExcelSystem es = new ExcelSystem();
    Graph graph = TestTinkerPop3.getAirRoutes();
    GraphTraversalSource g = graph.traversal();
    // es.setDebug(true);
    Workbook wb = es.createWorkBook(g);
    assertEquals(6, wb.getNumberOfSheets());
    es.save(wb, testAirRouteFileName);
}

Railway

Links