← Back to all sparks
W

writexl

ANALYTICS
Velocity6.3

Write data frames to Excel xlsx files from R without Java or Excel

writexl spent nine years refusing to do formatting, then shipped all of it in 2.0.0.

xlsxlibxlsxwritercell-formattingmajor-versionr-io
Current state
For most of its history writexl was a deliberately minimal wrapper: bump the vendored libxlsxwriter, handle NA and Date coercion correctly, support a list of data frames for multiple sheets, and nothing else. 2.0.0, released August 2026, changes that — near-full libxlsxwriter coverage, cell/worksheet/workbook formatting, cell comments, an `xl_cell_general` class carrying value, formula and hyperlink, a cell-by-cell refactor, libxlsxwriter 1.2.4, and memory-safety work. It landed the same day as 1.5.4, a typo fix on the old line.
Where it's heading
The package has changed category. Its selling point was being the dependency-free, opinion-free way to get a data frame into xlsx; 2.0.0 makes it a formatting-capable writer that now compares itself against openxlsx2 in its own test suite. The cell-by-cell refactor is what made that possible and is also the largest structural change in the package's history. Note that a single contributor drove essentially all of it.
Prediction
Expect follow-up releases fixing edge cases in the new formatting and comment APIs — the cell-by-cell rewrite is too large to land clean, and the 2.0.0 notes already mention an off-by-one in date columns.

Recent moves

  1. 8d ago

    writexl 2.0.0 adds formatting, comments and full libxlsxwriter coverage

    ⚡ SPARK

    Near-full libxlsxwriter coverage arrives at once: formatting at cell, worksheet and workbook level, cell comments, an `xl_cell_general` class for value/formula/hyperlink, and a cell-by-cell rewrite underneath. It ends writexl's defining constraint.

    View source ↗
  2. 8d ago

    writexl 1.5.4 fixes a documentation typo

    A single spelling correction, released the same day as 2.0.0. It closes out the 1.x line rather than advancing it.

    View source ↗
  3. 5y ago

    writexl 1.4.0 updates libxlsxwriter to 1.0.3

    Bumps vendored libxlsxwriter to 1.0.3. The archetypal writexl release for most of the package's life.

    View source ↗
  4. 6y ago

    writexl 1.2 fixes NA in formulas and hyperlinks

    Updates the bundled library and fixes NA handling in `xl_formula` and `xl_hyperlink` — the two helpers 2.0.0 later absorbs into a general cell class.

    View source ↗
  5. 7y ago

    writexl 1.1 fixes NA strings and bit64 coercion

    Stops writing blank strings for NA and empty character values, and coerces bit64 vectors to double with a warning since xlsx has no int64. Correctness at the type boundary.

    View source ↗
  6. 8y ago

    writexl 1.0 writes Date values as datetimes

    Writes R Date values as proper datetime strings and updates the vendored library. The 1.0 release, and still only about getting values across correctly.

    View source ↗