xlsx-parser
Version, currently 1.4.025 versions
- 1.4.0latestAug 4, 2025
- 1.3.0not indexedJul 27, 2026
- 1.2.0not indexedJul 27, 2026
- 1.1.0not indexedJul 27, 2026
- 1.0.4not indexedJul 27, 2026
- 1.0.3not indexedJul 27, 2026
- 1.0.2not indexedJul 27, 2026
- 1.0.1not indexedJul 27, 2026
- 1.0.0not indexedJul 27, 2026
- 0.8.2not indexedJul 27, 2026
- 0.8.1not indexedJul 27, 2026
- 0.8.0not indexedJul 27, 2026
- 0.7.0not indexedJul 27, 2026
- 0.6.0not indexedJul 27, 2026
- 0.5.1not indexedJul 27, 2026
- 0.5.0not indexedJul 27, 2026
- 0.4.0not indexedJul 27, 2026
- 0.3.2not indexedJul 27, 2026
- 0.3.1not indexedJul 27, 2026
- 0.3.0not indexedJul 27, 2026
- 0.2.1not indexedJul 27, 2026
- 0.2.0not indexedJul 27, 2026
- 0.1.2not indexedJul 27, 2026
- 0.1.1not indexedJul 27, 2026
- 0.1.0not indexedJul 27, 2026
github.com/d1ceward/xlsx-parser
Crystal wrapper for parsing .xlsx spreadsheets
18 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
xlsx-parser:
github: d1ceward/xlsx-parser
version: ~> 1.4.0Then run:
shards installshard.yml
- Crystal
>= 0.36.1, < 2.0.0- License
- MIT
- Author
- d1ceward <contact@d1ceward.com>
Dependencies
Development Dependencies
- ameba~> 1.6.0github: crystal-ameba/amebadev
README
# xlsx-parser (v1.4.0)

[](https://github.com/d1ceward/xlsx-parser/issues)
[](https://github.com/d1ceward/xlsx-parser/blob/master/LICENSE)
Crystal wrapper for parsing .xlsx spreadsheets
:rocket: Suggestions for new improvements are welcome in the issue tracker.
Note: Work with Cystal versions `>= 0.36.0, < 2.0.0`
## Installation
1. Add the dependency to your `shard.yml`:
```yaml
dependencies:
xlsx-parser:
github: d1ceward/xlsx-parser
version: 1.4.0
```
2. Run `shards install`
## Usage
### With IO
```crystal
require "xlsx-parser"
file_io = File.new("./my_super_spreadsheet.xlsx")
book = XlsxParser::Book.new(file_io)
```
### With file path
```crystal
require "xlsx-parser"
book = XlsxParser::Book.new("./my_super_spreadsheet.xlsx")
```
### Print rows content
```crystal
# Iterate on each row of the first sheet
book.sheets[0].rows.each do |row|
puts row #=> { "A1" => "Col A Row 1", "B1" => "Col B Row 1" }
end
# Second sheet
book.sheets[1]
book.close
```
Documentation available here : https://d1ceward.github.io/xlsx-parser/
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/d1ceward/xlsx-parser. By contributing you agree to abide by the Code of Merit.
1. Fork it (<https://github.com/d1ceward/xlsx-parser/fork>)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
## Contributors
- [d1ceward](https://github.com/d1ceward) - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
1.4.0- Tagged
- Aug 4, 2025
- Commit
35ba6c760174- Crystal
>= 0.36.1, < 2.0.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/d1ceward/xlsx-parser
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 13, 2026
- Synced
- Aug 13, 2026
- Versions
- 25