Skip to content

Releases: chitralabs/sheetz

v1.0.2

19 Feb 19:14

Choose a tag to compare

What's Changed

Bug Fixes

  • Fix Windows file locking in StreamingReaderclose() now joins the parser thread before returning, ensuring file handles are fully released

Dependency Upgrades

  • OpenCSV 5.9 → 5.12.0
  • AssertJ 3.24.2 → 3.27.7
  • SLF4J 2.0.9 → 2.0.17
  • maven-gpg-plugin 3.1.0 → 3.2.8
  • maven-javadoc-plugin 3.6.3 → 3.12.0
  • maven-surefire-plugin 3.2.2 → 3.5.4
  • maven-jar-plugin 3.3.0 → 3.5.0
  • maven-source-plugin 3.3.0 → 3.4.0
  • maven-compiler-plugin 3.11.0 → 3.15.0

CI Improvements

  • Moved OWASP dependency-check to weekly security scan for faster CI (~3 min vs ~20 min)
  • Upgraded GitHub Actions (checkout v6, setup-java v5, upload-artifact v6, codecov v5)

Maven

<dependency>
    <groupId>io.github.chitralabs.sheetz</groupId>
    <artifactId>sheetz-core</artifactId>
    <version>1.0.2</version>
</dependency>

Full Changelog: v1.0.1...v1.0.2

Sheetz v1.0.1 — Initial Stable Release

13 Feb 06:30

Choose a tag to compare

Sheetz v1.0.1 — Initial Release

We're excited to release the first stable version of Sheetz — a lightweight Java library
that lets you read, write, and stream Excel (.xlsx/.xls) and CSV files with a single line of code.

What's New

One-Liner API

// Read any Excel or CSV file into typed Java objects
List<Product> products = Sheetz.read("data.xlsx", Product.class);

// Write back in one line
Sheetz.write(products, "output.xlsx");

Key Features

  • Zero boilerplate — no Workbook, Sheet, Row, or Cell objects to manage
  • True SAX streaming — process million-row files with constant ~10MB memory
  • 19 built-in type converters — LocalDate, BigDecimal, Enum, UUID, Boolean, and more
  • Annotation-based mapping@Column for headers, required fields, defaults, custom formats
  • Built-in validation — per-row error reporting with column names and row numbers
  • Thread-safe — safe for concurrent use in multi-threaded applications
  • Multi-format — XLSX, XLS (legacy), and CSV from one unified API

Performance vs Apache POI (100K rows)

Operation Sheetz Apache POI Improvement
Write 423ms 2,453ms 5.8x faster
Memory ~10MB ~340MB 34x less memory
Lines of code 1 45+ 45x less code

Maven

<dependency>
    <groupId>io.github.chitralabs.sheetz</groupId>
    <artifactId>sheetz-core</artifactId>
    <version>1.0.1</version>
</dependency>

Resources

Contributors

Thanks to everyone who tested and provided feedback during development.


If Sheetz saved you time, please give us a star — it helps other Java developers find this project.

v1.0.0 — Initial Release

13 Feb 06:30

Choose a tag to compare

Sheetz v1.0.0 — Initial Release

The first public release of Sheetz, a high-performance Excel and CSV processing library for Java.

Highlights

  • One-liner APISheetz.read(), Sheetz.write(), Sheetz.stream(), Sheetz.validate()
  • Three formats — XLSX (Excel 2007+), XLS (Excel 97-2003), and CSV with auto-detection
  • Annotation mapping@Column with custom headers, required fields, defaults, date formats, custom converters, ignore, and column width
  • 19 built-in type converters — Primitives, BigDecimal, BigInteger, LocalDate, LocalDateTime, LocalTime, Instant, ZonedDateTime, UUID, Enum, and more
  • True streaming — SAX-based XLSX parsing with constant ~10MB memory for million-row files
  • Batch processingstream().batch(1000).forEach(batch -> db.bulkInsert(batch))
  • Built-in validation — Per-row error reporting with row number, column name, value, and root cause
  • Fluent buildersReaderBuilder and WriterBuilder for sheet selection, header row, auto-sizing, freeze panes
  • Multi-sheet workbooksSheetz.workbook().sheet("A", listA).sheet("B", listB).write("report.xlsx")
  • Thread-safe — Global configuration in AtomicReference, safe for concurrent use
  • Fuzzy column matching — 3-tier resolution (exact → case-insensitive → normalized) so productName matches Product Name
  • XXE protection — Secure XML parsing with external entities disabled
  • Java Module System (JPMS) support

Installation

<dependency>
    <groupId>io.github.chitralabs.sheetz</groupId>
    <artifactId>sheetz-core</artifactId>
    <version>1.0.0</version>
</dependency>

Full changelog: https://github.com/chitralabs/sheetz/blob/main/CHANGELOG.md