{"id":16318196,"url":"https://github.com/githubjakob/read-graph-from-excel","last_synced_at":"2025-05-13T17:16:24.195Z","repository":{"id":77570437,"uuid":"354904139","full_name":"githubjakob/read-graph-from-excel","owner":"githubjakob","description":null,"archived":false,"fork":false,"pushed_at":"2021-04-05T17:12:33.000Z","size":88,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-16T20:28:27.432Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/githubjakob.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-05T16:48:23.000Z","updated_at":"2021-04-05T17:12:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"e52d9631-82a9-43ea-958f-47f751aacec6","html_url":"https://github.com/githubjakob/read-graph-from-excel","commit_stats":{"total_commits":5,"total_committers":1,"mean_commits":5.0,"dds":0.0,"last_synced_commit":"06846662c10a42d311c05544fc75a5833cc23e9a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/githubjakob%2Fread-graph-from-excel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/githubjakob%2Fread-graph-from-excel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/githubjakob%2Fread-graph-from-excel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/githubjakob%2Fread-graph-from-excel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/githubjakob","download_url":"https://codeload.github.com/githubjakob/read-graph-from-excel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253990503,"owners_count":21995776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T22:10:15.567Z","updated_at":"2025-05-13T17:16:23.734Z","avatar_url":"https://github.com/githubjakob.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# read-graph-from-excel\n\nThis module is a POC to read an excel spreadsheet ('xlsx') and generate a directed graph from the formulas in the spreadsheet.\n\nThe assumption is that an excel spreadsheet can be seen as one big function that maps a set of input parameters to a set of output parameters.\n\nThe idea is to visualize the dependencies between the formulas of the spreadsheed in a directed graph.\n\nThe nodes represent the cells with the formulas, e.g. node B1 has formula \"B1=A1+1\". The edges represent how the formulas are linked to each other, e.g. node B1 \"B1=A1+1\" is linked to node A1.\n\nNodes with no ingoing edges represent the \"input parameters\" of the excel spreadsheet while nodes with on outgoing edges represent the \"output parameters\".\n\n## Example\n\nThe selected cell has the formula \"=A1+1\". The node on the very left is representing that cell - note the outgoing edge to the node \"A1\". You can also see that the cell \"C1\" is referencing the cell \"B1\" since the two nodes are connected.\n\n![Example Excel](https://github.com/githubjakob/read-graph-from-excel/raw/main/example/excel.png \"Example Excel\")\n\n![Output Graph](https://github.com/githubjakob/read-graph-from-excel/raw/main/example/graph.png \"Output Graph\")\n\n## Curent state of the script\n\n- Can read an excel spreadsheet\n- Parse the cells on one Sheet until max_row and max_col\n- Infer the dependencies between the cells\n- Create and plot a graph that shows the nodes and the dependencies\n\n## Todo\n\n- Extend to read multiple sheets\n- Extend to dynamically infer the range of the active cells in a sheet (max_row and max_col are currently hardcoded)\n- Test with more sophisticated spreadsheets\n- Refactor and clean up the code :-)\n\n## Dependencies\n\n- https://openpyxl.readthedocs.io\n- https://github.com/xflr6/graphviz\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgithubjakob%2Fread-graph-from-excel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgithubjakob%2Fread-graph-from-excel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgithubjakob%2Fread-graph-from-excel/lists"}