- update Apache POI to 5.4.0
- sheet.getCurrentCell() returns cell directly, not wrapped in an Optional
- UI components for Swing and JavaFX:
- support rotated text
- support text layout 'distributed'
- allow navigating beyond spreadsheet row/column range
- update utility
- fix rendering issues
- JavaFX WorkbookView fixes
- update utility; fixes a bug where the text color in POI sheets was set to black
- update utility to 15.x
- added sheet as argument to SwingSheetView and FxSheetView constructors
- small fixes
- BREAKING: null arguments to methods wil throw IllegalArgumentException instead of NullPointerException
- dependency updates and small fixes
- javadoc
- BREAKING: some Event class method names changed to be more consistent; some methods that could return null have been changed to return Optional instead
- JSpecify annotations are used and all modules are @NullMarked
- use log4j-bom
- Javadoc additions
- dependency updates
- fix issues when formatting dates
- several fixes for the JavaFX components that display Workbooks and sheets
- use Java 17 toolchain for all modules but the JavaFX support module that uses Java 21
- new JavaFX WorkbookView
- rewritten large parts of the Swing sheet rendering code
- Methods that previously might return null have been changed to return Optional instead
- update utility to next major version
- use Rectangle2f from utility; changes coordinates to float
- code cleanup
- NOTE: there are some glitches with border drawing in Swing that will be fixed in a coming release
- fixes for workbook-relative hyperlinks in the Excel implementation
- allow workbook-relative hyperlinks
- override transitive Apache POI dependency on commons-compress to non-vulnerable version 1.26.1
- update utility
- dependency updates
- add missing package-info, annotations
- update gradle, cabe, dependencies
- dependency updates
- internal logging was migrated from SLF4J to Log4j-api
- removed unused interface IRowBuilder
- vulnerability scanning using GitHub CodeQL
- add Cell.setError(), Cell.isError()
- small fixes and enhancements
- update dependencies
- update utility and log4j to latest versions for better JPMS support
- fix locale dependent formatting of dates and numbers in both Excel and generic implementations when the same cell is queried multiple times with different locales
- update Apache POI to 5.2.4
- update JavaFX to 21
- code cleanup
- Excel: make sure cells are date or date/time formatted when setting value to a LocalDate or LocalDateTime
- BREAKING: Sheet.getRowIfExists() and Row.getCellIfExists() return Optional
- BREAKING: move MejaHelper.find() methods to Sheet/Row classes
- FIX: TableModel created by MejaSwingHelper.createTableModel() adds empty cells to sheet
- FIX: Sheet.clear() not firing change event
- FIX: TableModel not updating last row when changes are made to sheet
- NEW: Sheet.austoSizeRow(), takes into account rotated text
- NEW: Sheet.getCellIfExists()
- NEW: introduce SearchSettings record
- NEW: TableModel created by MejaSwingHelper.createTableModel() allows editing; changes write through to the workbook
- Javadoc updates and additions
- added more unit tests
- update dependencies
- common implementation for autoSizeColumn()
- allow null values in Sheet.createRow()
- fixes in SheetTableModel
- refactorings
- parametrized unit tests
- update utility to fix version
- run GitHub CI on both Windows and Linux
- fix HTML export ignoring locale
- improved unit tests
- update dependencies
- update dependencies
- enable Github CI
- fix unit tests on windows
- fix unit tests depending on system locale
- breaking: remove Workbook.resolve()
- update dependencies
- code cleanup
- cleanup JavaScript of exported files
- add gradle tasks for running samples
- fix log4j warning when running tests
- update dependencies
- improve test coverage
- respect options when reading CSV
- update dependencies
- use version catalogue for project dependencies
- update utility
- update Apache POI
- update utility
- all logging is done through SLF4J
- small fixes improvements
- Java 17 required
- module names changed to
com.dua3.meja
- Apache POI updated to 5.2.0
- some method names have changed because a few classes have been replaced by records (i.e.
getxxx()
->xxx()
) - API is "not-null-per default", i.e. all parameters of object type must not be null unless otherwise stated in the documentation. This is checked at runtime when assertions are enabled.
- All overrides of MejaHelper.find() return Optional
- JDK 11+
- POI 5.2.0
- update utility to 9.0.1
- update utility to 7.0.x bugfix releases
- fix exception when copying cell styles (2.2.6)
- update utility to 7; this is a major update of that library
- bugfixes; refactorings, and improvements
- POI: fix copying sheet with autofilter
- fix rotated text in HTML output
- bugfixes in POI implementation
- fix CellStyle.getRotation() returning values >90 degrees in XSSF implementation
- fix Poi implementation: Row.getLastCellNum() returned -2 for empty rows()
- Row.getFirstCellNum() returns 0 for empty rows (was unspecified)
- minor fixes
- HTML export: improved CSS for rotated cells
- Cell.merge() returns
this
- several minor fixes
- change Cell.setCellStyle() return type from void to Cell to allow chaining
- HTML-export: display links in color defined by cell style
- disabled the POI-module build for the time being - I will either enable it for final or switch to POI 5 which will hopefully be Jigsaw compatible by itself so that the POI-module will not be needed anymore
- update utility
- update spotbugs
- code cleanup
- text rotation in CellStyle (not yet supported in viewer)
- HTML output: support cell styles
- Workbook.findSheetByName() and Workbook.getOrCreateSheet()
- update utility
- add some javadoc to the Workbook object caching methods
- update utility (to be consistent with other libs)
- update utility (to be consistent with other libs)
- output relative links in HtmlWorkbookWriter if possible
- update utility to 6.2.3
- add some tests for HtmlWorkbookWriter (in the POI package since an excel-workbook is used as input)
- fix display of merged cells in HTML output
- support hyperlinks in HTML output
- update utility to 6.2.2
- code cleanup
- fix NPE in GenericSheet.setColumnWidth()
- initial support for output in HTML format
- sync with utility
- update utility dependency
- fix hyperlinks - pass links by URI as problems with absolute paths on Windows could not be resolved with URLs
- changes to Hyperlinking (still broken, fixed in 2.0.8)
- Workbook.resolve() to resolve workbook relative paths
- fix Hyperlink to file (again)
- fix Hyperlink to file
- fix writing GenericWorkbook to file with xls extension wrongly using xlsx format
- add Hyperlink support
- Workbook.write(Path)
- add CreateCalendar sample
- remove Java 9 API usage
- update JavaFX to 14
- make dependency on JavaFX non-transitive
- remove Java 9+ API usage
- restore Java 8 compatibility
- enable compilation on JDK 14
- update utility to 5.3.4
- update Apache POI to 4.1.2
- update JavaFX to 13.0.2
- update spotbugs to 4.0.1
- update gradle plugins
BETA_19:
- update gradle to 6.0 to make compilation on JDK 13 possible
- update utility dependency
- update openjfx to 13.0.1
BETA_18:
- update POI to 4.1.1
- remove (now) unnecessary conversions to java.util.Date
- add extension "xlsm" to xlsx filetype
BETA_17:
- further code cleanup
- update utility dependency
- remove usage of deprecated API (deprecated XSSFColor constructor)
- performance improvements
- small bug fixes
BETA_16:
- code cleanup
- buildable with JDK 13
- performance improvements
- bug fixes
BETA_15:
- update dependencies, rename module descriptors:
meja
->meja
- code cleanup
BETA_14:
- update dependencies, i.e. OpenJFX 13 (still compatible with Java 11)
BETA_13:
- When exceptions are thrown while accessing cells, the cell ref is prefixed to the exception message
- update dependencies
BETA_12:
- use URI instead of Path everywhere (because Path makes problems when referring to files located inside jars)
BETA11:
- BREAKING: Added parameter
Object... values
toSheet.createRow()
. This requires recompilation, but no source changes. MejaHelper.printTable()
:FIRST_LINE_IS_HEADER
to indicate that the first line is table header.- (BETA11a): fix IllegalArgumentException when no PrintOptions are supplied.
BETA10:
MejaHelper.printTable
: output sheet as text in tabular form- removed MejaConfig. This had the sole purpose of toggling XOR-drawing in the sheet painter and I never really used it.
If XOR-drawing does not work for whatever reason, create an issue and set the system property
MEJA_USE_XOR_DRAWING
tofalse
.
BETA9:
- support reading numerical values from formula cells
BETA8:
MejaHelper.openWorkbook()
determines the correct type by looking at the file extension.
BETA7:
- update utility
- remove version file
BETA6:
- Fix Javadoc encoding issue
- Fix some POI deprecation warnings
- Database utility class to copy data from ResultSet into Sheet
- small code cleanups
- Fix Off-by-One error in Row.createCell()
BETA5:
- Changes to build files
- Fix ClassCastException when writing CSV data containing dates.
- added
Sheet.createRow()
andRow.createCell()
BETA4:
- CsvWorkbookWriter: if workbook contains more than one sheet, prepend each sheet with a single line containing
only
!<sheet name>!
- the deprecated
Cell.getDate()
method returningjava.util.Date
has been replaced by a method of the same name returningjava.time.LocalDate
- The cell type DATE has been split into DATE and DATE_TIME. This should make many things easier. The reason for not making this distinction in earlier versions is that Excel (which at the time was the only implementation) doesn't distinguish between the two.
- bugfixes
BETA3:
- WorkbookWriter is now an interface (was an abstract class before)
- FileType implements Comparable
- WorkbookWriter: accepts callback for progress updates
BETA2:
- Removed the "locale dependent" setting from CSV.
- Removed
FileType.getDescription()
. UseFileType.getName()
instead. - Added
FileTypeExcel
that combines the old and new Excel formats (only for reading). - new subproject
meja.poi.module
that wraps the Apache POI Excel implementation so that it cn be used in modular jlinked projects. Just includemeja.poi.module
instead ofmeja.poi
.
BETA1:
- Meja requires Java 11 to compile and run.
- Provides Jigsaw modules. However, Apache POI is not yet fully modularized, so keep in mind when using jlink with meja.poi.
- WorkbookFactory implementations can be loaded by
ServiceProvider.load()
. Loading is done automatically when using FileType.forPath(...).factory(). - To run samples, run
./gradlew run
in the project directory