{"id":22293568,"url":"https://github.com/xi/spreadsheet","last_synced_at":"2025-03-25T22:18:10.020Z","repository":{"id":249412821,"uuid":"831451569","full_name":"xi/spreadsheet","owner":"xi","description":"terminal spreadsheet application","archived":false,"fork":false,"pushed_at":"2024-10-04T05:42:32.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T19:23:46.549Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-07-20T15:33:51.000Z","updated_at":"2024-10-04T05:42:35.000Z","dependencies_parsed_at":"2024-12-04T00:35:32.289Z","dependency_job_id":null,"html_url":"https://github.com/xi/spreadsheet","commit_stats":null,"previous_names":["xi/spreadsheet"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xi%2Fspreadsheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xi%2Fspreadsheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xi%2Fspreadsheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xi%2Fspreadsheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xi","download_url":"https://codeload.github.com/xi/spreadsheet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245550681,"owners_count":20633883,"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-12-03T17:29:39.455Z","updated_at":"2025-03-25T22:18:09.984Z","avatar_url":"https://github.com/xi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is a terminal-based spreadsheet that aims to feel familiar for people\nknowing excel.\n\nThe data is stored in simple CSV files. Consequently, formatting (e.g.\nleft/right alignment or cell width) is not stored. The sheet can either be\nsaved in source form (including formulas) or in evaluated form. A source file\ncan also be evaluated without using the TUI by using the `--eval` command line\noption.\n\n![screenshot](screenshot.png)\n\n## Key bindings\n\n-   Arrow keys and page up/down move the cursor\n-   Enter will start full edit mode. `-`, `=` or a digit will start quick edit\n    mode. The difference between the two modes is the behavior of arrow keys:\n    In full edit mode, arrow keys move the text cursor. In quick edit mode,\n    arrow keys move the cell cursor (after submitting the changes).\n-   `#` - Start drag mode (blue). Move the cursor to a different cell and press\n    enter. The area between the two cells will be filled with the formula from\n    the first cell. References to rows and columns that are not prefixed with\n    `$` will be adapted.\n-   `v` - Start visual mode (green). You can then use `y` to copy (\"yank\") or\n    `d` to cut (\"delete\") the selected cells. After that, you can use `p` to\n    paste the copied contents somewhere else.\n-   Delete - clear the current cell\n-   `\u003e`/`\u003c` - increase/decrease the width of the current column\n-   `w` - Write the sheet to a file (source form).\n-   `W` - Write the sheet to a file (evaluated form).\n-   `h` - show help\n-   `q` - quit\n\n## Formulas\n\nCells can have the following values:\n\n-   Integer (e.g. `1`)\n-   Float (e.g. `1.2`)\n-   String (e.g. `\"foo\"`)\n-   Formula (e.g. `=A1 + 1`)\n\nFormulas can contains the following functions:\n\n-   `sum(A1:B2)` - calculate the sum of all fields from the given range\n-   `min(A1:B2)` - calculate the minimum of all fields from the given range\n-   `max(A1:B2)` - calculate the maximum of all fields from the given range\n-   `power(a, b)` - calculate `a` to the power of `b`\n-   `exp(a)` - exponential function\n-   `sin(a)` - sine function\n-   `cos(a)` - cosine function\n-   `tan(a)` - tangent function\n-   `log(a)` - natural logarithm\n-   `bar(a)` - draw a bar for a value between 0 and 1\n\n## Prior art\n\n-   [sc](http://www.ibiblio.org/pub/Linux/apps/financial/spreadsheet/!INDEX.html) - spreadsheet calculator\n-   [visidata](https://www.visidata.org/) - interactivly explore tabular data\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxi%2Fspreadsheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxi%2Fspreadsheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxi%2Fspreadsheet/lists"}