{"id":39521174,"url":"https://github.com/tsak/xlsx2json-api","last_synced_at":"2026-01-18T06:19:39.297Z","repository":{"id":88249895,"uuid":"195252066","full_name":"tsak/xlsx2json-api","owner":"tsak","description":"Convert Excel XLSX files to JSON and vice versa with a lightweight API written in Go.","archived":false,"fork":false,"pushed_at":"2025-01-13T21:40:28.000Z","size":65,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-22T17:15:54.485Z","etag":null,"topics":["converter","converts-xlsx-files","go","golang","json","xlsx"],"latest_commit_sha":null,"homepage":"https://xlsx2json.tsak.net","language":"Go","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/tsak.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":"2019-07-04T14:00:36.000Z","updated_at":"2025-01-13T21:40:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"9ea66df9-7a92-4172-abef-4ad4ea756761","html_url":"https://github.com/tsak/xlsx2json-api","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/tsak/xlsx2json-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsak%2Fxlsx2json-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsak%2Fxlsx2json-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsak%2Fxlsx2json-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsak%2Fxlsx2json-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsak","download_url":"https://codeload.github.com/tsak/xlsx2json-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsak%2Fxlsx2json-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28531994,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["converter","converts-xlsx-files","go","golang","json","xlsx"],"created_at":"2026-01-18T06:19:38.645Z","updated_at":"2026-01-18T06:19:39.259Z","avatar_url":"https://github.com/tsak.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# XLSX 2 JSON API\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/tsak/xlsx2json-api)](https://goreportcard.com/report/github.com/tsak/xlsx2json-api)\n\nA lightweight API that converts XLSX files into JSON. Try it on [xlsx2json.tsak.net](https://xlsx2json.tsak.net)\n\nIt will turn...\n\n![tables are cool](tables.png)\n\n...into...\n\n```json\n{\n  \"name\" : \"tables are cool.xlsx\",\n  \"spreadsheets\" : [\n    {\n      \"name\" : \"Sheet 1\",\n      \"columns\" : [\n        \"Tables\",\n        \"Are\",\n        \"Cool\"\n      ],\n      \"rows\" : [\n        [\n          \"col 3 is\",\n          \"right-aligned\",\n          \"$1600\"\n        ],\n        [\n          \"col 2 is\",\n          \"centered\",\n          \"$12\"\n        ],\n        [\n          \"zebra stripes\",\n          \"are neat\",\n          \"$1\"\n        ]\n      ]\n    }\n  ]\n}\n```\n\n...and vice versa.\n\nSimply send an XLSX file via `POST` and `multipart/form-data` request to `/`. Expected upload parameter name is `file`.\n\n**Sample form**\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n\u003chead\u003e\n    \u003cmeta charset=\"UTF-8\"\u003e\n    \u003ctitle\u003eXSLX2JSON API\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003ch1\u003eXSLX to JSON to XLSX REST API\u003c/h1\u003e\n\u003cform action=\"/\" method=\"post\" enctype=\"multipart/form-data\"\u003e\n    \u003cinput type=\"file\" name=\"file\" accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/json\"\u003e\n    \u003cbutton type=\"submit\"\u003eUpload\u003c/button\u003e\n\u003c/form\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n## Endpoints\n\n### `POST /`\n\nThis either accepts an XLSX file or JSON file as part of a `multipart/form-data` request. It expects `name=\"file\"`.\n\n**Sample XLSX upload**\n\n```\nPOST http://localhost:8000\nContent-Type: multipart/form-data\n-----------------------------1234567890\nContent-Disposition: form-data; name=\"file\"; filename=\"test.xlsx\"\nContent-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\n\n...\n```\n\n### `POST /json2xlsx`\n\nThis endpoint accepts JSON if sent via `POST` and with `Content-Type: application/json`\n\n```\nPOST http://localhost:8000/json2xlsx\nAccept: */*\nCache-Control: no-cache\nContent-Type: application/json\n\n{}\n```\n\nThe format has to match the format that is returned by turning XLSX to JSON.\n\n## Environment variables\n\n* `API_HOST` (default `localhost`)\n* `API_PORT` (default `8000`)\n* `DEBUG` (default `0`), use `DEBUG=1` to enable debug mode\n\n## Test \u0026 build\n\n```bash\ngo test \u0026\u0026 go build\n```\n\n## Run\n\n### Local\nBuild, run the following command and then open [localhost:8000](http://localhost:8000).\n\n```bash\nDEBUG=1 ./xlsx2json-api\n```\n\n**Note:** If you run with `DEBUG=1`, it will serve a simple HTML form on [localhost:8000](http://localhost:8000) for\ntesting.\n\n![HTML form](debug.png)\n\n### Docker\n\nRun the command below and then open [localhost:8000](http://localhost:8000).\n\n```bash\ndocker run -p 8000:8000 tsak/xlsx2json-api\n```\n\n### As a systemd service\n\nSee [xlsx2json-api.service](xlsx2json-api.service) systemd service definition.\n\nTo install:\n\n1. `adduser xlsx2json`\n2. copy `xlsx2json-api` binary and `.env` file to `/home/xlsx2json`\n3. place systemd service script in `/etc/systemd/system/`\n4. `sudo systemctl enable xlsx2json-api.service`\n5. `sudo systemctl start xlsx2json-api`\n6. `sudo journalctl -f -u xlsx2json-api`\n\nThe last command will show if the service was started.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsak%2Fxlsx2json-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsak%2Fxlsx2json-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsak%2Fxlsx2json-api/lists"}