{"id":13413435,"url":"https://github.com/plandem/xlsx","last_synced_at":"2025-07-12T17:32:04.188Z","repository":{"id":56487557,"uuid":"101518230","full_name":"plandem/xlsx","owner":"plandem","description":"Fast and reliable way to work with Microsoft Excel™ [xlsx] files in Golang","archived":false,"fork":false,"pushed_at":"2020-11-04T15:00:26.000Z","size":2835,"stargazers_count":176,"open_issues_count":13,"forks_count":24,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-06-25T09:49:01.607Z","etag":null,"topics":["ecma376","excel","golang","microsoft","ooxml","openoffice","openxml","spreadsheet","xlsx"],"latest_commit_sha":null,"homepage":"","language":"Go","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/plandem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"open_collective":"plandem","ko_fi":"plandem","custom":"https://www.paypal.me/gayvoronsky"}},"created_at":"2017-08-26T23:11:38.000Z","updated_at":"2025-05-19T00:49:16.000Z","dependencies_parsed_at":"2022-08-15T19:40:35.916Z","dependency_job_id":null,"html_url":"https://github.com/plandem/xlsx","commit_stats":null,"previous_names":["plandem/xlsx2go"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/plandem/xlsx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plandem%2Fxlsx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plandem%2Fxlsx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plandem%2Fxlsx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plandem%2Fxlsx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plandem","download_url":"https://codeload.github.com/plandem/xlsx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plandem%2Fxlsx/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265025530,"owners_count":23699765,"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":["ecma376","excel","golang","microsoft","ooxml","openoffice","openxml","spreadsheet","xlsx"],"created_at":"2024-07-30T20:01:40.330Z","updated_at":"2025-07-12T17:32:01.182Z","avatar_url":"https://github.com/plandem.png","language":"Go","funding_links":["https://opencollective.com/plandem","https://ko-fi.com/plandem","https://www.paypal.me/gayvoronsky"],"categories":["Microsoft Office","微软办公软件","Utilities","工具库","Microsoft Excel"],"sub_categories":["Microsoft Excel","EXCEL","HTTP Clients","交流"],"readme":"# Xlsx2Go\n[![Build Status](https://travis-ci.org/plandem/xlsx.svg?branch=master)](https://travis-ci.org/plandem/xlsx)\n[![Code Coverage](https://codecov.io/gh/plandem/xlsx/branch/master/graph/badge.svg)](https://codecov.io/gh/plandem/xlsx) \n[![Go Report Card](https://goreportcard.com/badge/github.com/plandem/xlsx)](https://goreportcard.com/report/github.com/plandem/xlsx)\n[![GoDoc](https://godoc.org/github.com/plandem/xlsx?status.svg)](https://godoc.org/github.com/plandem/xlsx)\n[![License](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/plandem/xlsx/master/LICENSE) \n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fplandem%2Fxlsx.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fplandem%2Fxlsx?ref=badge_shield)\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/gayvoronsky)\n\n```go\npackage main\n\nimport (\n\t\"github.com/plandem/xlsx\"\n\t\"github.com/plandem/xlsx/format/conditional\"\n\t\"github.com/plandem/xlsx/format/conditional/rule\"\n\t\"github.com/plandem/xlsx/format/styles\"\n)\n\nfunc main() {\n\txl := xlsx.New()\n\tdefer xl.Close()\n\n\t//create a new sheet\n\tsheet := xl.AddSheet(\"The first sheet\")\n\n\t//access by ref\n\tcell := sheet.CellByRef(\"A2\")\n\n\t//set value\n\tcell.SetValue(\"Easy Peasy\")\n\n\t//set cool styles\n\tcell.SetStyles(styles.New(\n\t\tstyles.Font.Bold,\n\t\tstyles.Font.Color(\"#ff0000\"),\n\t\tstyles.Fill.Type(styles.PatternTypeSolid),\n\t\tstyles.Fill.Color(\"#ffff00\"),\n\t\tstyles.Border.Color(\"#009000\"),\n\t\tstyles.Border.Type(styles.BorderStyleMedium),\n\t))\n\n\t//add comment\n\tcell.SetComment(\"No Comment!\")\n\n\t//add hyperlink\n\tsheet.CellByRef(\"A4\").SetValueWithHyperlink(\"wikipedia\", \"http://google.com\")\n\n\t//merge cells\n\tsheet.RangeByRef(\"A6:A7\").Merge()\n\tsheet.CellByRef(\"A6\").SetValue(\"merged cell\")\n\n\t//iterating\n\tfor iRow := 1; iRow \u003c 7; iRow++ {\n\t\t//access by indexes\n\t\tcell := sheet.Cell(1, iRow)\n\t\tcell.SetValue(iRow)\n\t}\n\n\t//add conditional formatting\n\tsheet.AddConditional(conditional.New(\n\t\tconditional.AddRule(\n\t\t\trule.Value.Between(1, 3, styles.New(\n\t\t\t\tstyles.Font.Bold,\n\t\t\t\tstyles.Font.Color(\"#ff0000\"),\n\t\t\t)),\n\t\t),\n\t\tconditional.AddRule(\n\t\t\trule.IconSet.Type(rule.IconSetType3Arrows),\n\t\t),\n\t), \"B2:B7\")\n\n\txl.SaveAs(\"./foo.xlsx\")\n}\n```\n\n## Documentation\n* [Guide](https://plandem.github.io/xlsx/)\n* [API Documentation](https://godoc.org/github.com/plandem/xlsx)\n* [Benchmarks](https://github.com/plandem/xlsx-benchmarks)\n\n# Roadmap\n- [ ] sheet: copy\n- [ ] sheet: custom filters\n- [x] sheet: streaming\n- [x] merged cells: merge/split for ranges, cols, rows\n- [x] hyperlinks: for cells, ranges, cols, rows\n- [x] range: copy\n- [x] row: copy\n- [x] col: copy\n- [x] cell: comments\n- [ ] cell: formulas\n- [x] cell: typed getter/setter for values\n- [x] other: conditional formatting\n- [x] other: rich texts\n- [ ] other: drawing\n- [ ] other: more optimization\n- [ ] other: more tests\n\n# Contribution \n- To prevent mess, sources have strict separation of markup and functionality. Document that describes OOXML is quite huge (about 6K pages), but the same time - functionality is not.\n- All markup resides inside of 'ml' folders, only marshal/unmarshal is allowed here, no any functionality.\n- Not every 'ml object' has related 'functional object' and vice versa.\n- If you want some functionality, then wrap 'ml object' and do what you want.\n\n### OOXML edition\nXML is compliant with part 1 of the [5th edition](http://www.ecma-international.org/publications/standards/Ecma-376.htm) of the ECMA-376 Standard for Office Open XML\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fplandem%2Fxlsx.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fplandem%2Fxlsx?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplandem%2Fxlsx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplandem%2Fxlsx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplandem%2Fxlsx/lists"}