Skip to content

Releases: dvbern/excelmerger

Formula reference fix

06 Feb 14:58
@xfh xfh
Compare
Choose a tag to compare

When using RowFiller, each copied row contained formular references to the row above instead of a reference to the row itself.

Handling large data sets

12 Dec 13:11
@xfh xfh
Compare
Choose a tag to compare

Adding a RowFiller, to support writing huge data sets using SXSSF.

SXSSF significantly reduces the memory footprint, but it comes with some limitations.
See also SXSSF HowTo

Manually shiftRowsAndMergedRegions

21 Nov 19:33
@xfh xfh
Compare
Choose a tag to compare

POI breaks merged regions using shiftRows

Helper to get all static MergeFields of a Class

15 Nov 10:21
@xfh xfh
Compare
Choose a tag to compare

The typing suppport gets partially lost when using an Enum that implents MergeFieldProvider.
The recommended method to declare MergeFields is to use a final Class with static MergeFields for each Excel template.

The new helper method MergeField.getStaticMergeFields(YourStaticClass.class) can be used to get all these static MergeFields inorder to pass them to the ExcelMerger.

Naming conventions

29 Aug 08:15
@xfh xfh
Compare
Choose a tag to compare

We dropped 'lib' in the groupId and artifactId name to comply with new naming conventions.

Use the following dependency from now on:

<dependency>
	<groupId>ch.dvbern.oss.excelmerger</groupId>
	<artifactId>excelmerger-impl</artifactId>
	<version>(NEWEST_VERSION)</version>
</dependency>

Typing support

08 Aug 16:11
@xfh xfh
Compare
Choose a tag to compare

2.0.0 Typing support

License change

We are open sourcing! This library is now available under the Apache License, Version 2.0

POI Update

Upgrade from 3.15 to 3.16

Breaking change

Deprecated code has been removed.

MergeFields and Converters are now using property typings, such that you cannot set mistakingly
the wrong merge value.

If you used excel Merger before, you will have to adjust your MergeField enums.
You can Use the following regular expressions to adjust to the new api.

(\w+)\((\w+), Type.SIMPLE\)
$1(new SimpleMergeField<>("$1", $2))
(\w+)\((\w+), Type.REPEAT_COL\)
$1(new RepeatColMergeField<>("$1", $2))
(\w+)\((\w+), Type.REPEAT_VAL\)
$1(new RepeatValMergeField<>("$1", $2))
(\w+)\((\w+), Type.REPEAT_ROW\)
$1(new RepeatRowMergeField("$1"))
enum (\w+) implements MergeField
enum $1 implements MergeFieldProvider
import static ch\.dvbern\.lib\.excelmerger\.StandardConverters\.(\w+);
import static ch\.dvbern\.oss\.lib\.excelmerger\.converters\.StandardConverters\.$1;
import ch\.dvbern\.lib\.excelmerger\.MergeField;
import ch\.dvbern\.oss\.lib\.excelmerger\.mergefields\.MergeField;
ch\.dvbern\.lib\.excelmerger
ch\.dvbern\.oss\.lib\.excelmerger

Please adjust your enum constructors and getters manually.