{"id":17748657,"url":"https://github.com/gekola/xlsxwriter-rb","last_synced_at":"2025-08-07T00:35:14.970Z","repository":{"id":15306597,"uuid":"77867448","full_name":"gekola/xlsxwriter-rb","owner":"gekola","description":"ruby bindings to libxlsxwriter","archived":false,"fork":false,"pushed_at":"2025-07-07T15:36:21.000Z","size":161,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-07T16:27:25.006Z","etag":null,"topics":["libxlsxwriter","ruby","xlsx"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gekola.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,"zenodo":null}},"created_at":"2017-01-02T23:03:24.000Z","updated_at":"2025-07-07T15:36:24.000Z","dependencies_parsed_at":"2024-10-26T12:47:48.581Z","dependency_job_id":"fdb0f022-bfe6-4ff5-bb99-36a7c86c82d5","html_url":"https://github.com/gekola/xlsxwriter-rb","commit_stats":{"total_commits":52,"total_committers":4,"mean_commits":13.0,"dds":"0.23076923076923073","last_synced_commit":"39c044e2a7a9fb35ab1bb36ffed701cc61e05009"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/gekola/xlsxwriter-rb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gekola%2Fxlsxwriter-rb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gekola%2Fxlsxwriter-rb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gekola%2Fxlsxwriter-rb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gekola%2Fxlsxwriter-rb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gekola","download_url":"https://codeload.github.com/gekola/xlsxwriter-rb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gekola%2Fxlsxwriter-rb/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269180783,"owners_count":24373835,"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","status":"online","status_checked_at":"2025-08-06T02:00:09.910Z","response_time":99,"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":["libxlsxwriter","ruby","xlsx"],"created_at":"2024-10-26T10:22:59.349Z","updated_at":"2025-08-07T00:35:14.908Z","avatar_url":"https://github.com/gekola.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# XlsxWriter\n\n[![Build Status](https://travis-ci.com/gekola/xlsxwriter-rb.svg?branch=master)](https://travis-ci.com/gekola/xlsxwriter-rb)\n[![Gem Version](https://badge.fury.io/rb/xlsxwriter.svg)](https://badge.fury.io/rb/xlsxwriter)\n\n## Description\n\nRuby binding to jmcnamara's [libxlswriter](https://github.com/jmcnamara/libxlsxwriter).\n\n[Documentation link](http://www.rubydoc.info/gems/xlsxwriter/XlsxWriter).\n\n### Usage\n\nThe following code snippet creates file `test.xlsx` in current directory with a header and one thousand row with random data.\n\n```ruby\nrequire 'xlsxwriter'\n\nXlsxWriter::Workbook.new('test.xlsx') do |wb|\n  wb.add_format(:numf, num_format_index: 4) # Excel standard fixed point format (two numbers after point)\n  wb.add_format(:header, bg_color: 0XCCCCCC, bold: true, bottom: XlsxWriter::Format::BORDER_THIN)\n\n  wb.add_worksheet('Worksheet 1') do |ws|\n    ws.add_row(['Number', 'String'], style: :header)\n    1_000.times do |i|\n      ws.add_row([rand * 10_000, 'test string %0d' % (rand * 1000)], style: [:numf])\n    end\n  end\nend\n```\n\n### Motivation\n\nThis gem has been written for generating large xlsx files (millions of rows). Pure ruby xlsx libraries do not perform very well in such use cases, consuming lots of memory for intermediate ruby objects and being generally slower (see the benchmark result below, benchmark code is located under `bench/simple_100k_rows.rb`).\n\n    Rehearsal ----------------------------------------------\n    xlsxwriter   0.601120   0.015773   0.616893 (  0.573616)\n    axlsx       18.731412   2.845668  21.577080 ( 17.039327)\n    ------------------------------------ total: 22.193973sec\n    \n                     user     system      total        real\n    xlsxwriter   0.613193   0.000000   0.613193 (  0.557582)\n    axlsx       19.055665   2.771983  21.827648 ( 17.259542)\n\nComparing this gem functionality to [axlsx](https://github.com/randym/axlsx) xlsxwriter lacks ability to read data from the current workbook state and does not have any integration with rails.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgekola%2Fxlsxwriter-rb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgekola%2Fxlsxwriter-rb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgekola%2Fxlsxwriter-rb/lists"}