From 6a1ab7f76e07e8ad43b8f5e967b66b453927a80d Mon Sep 17 00:00:00 2001 From: Marcus Warm Date: Thu, 29 Feb 2024 19:14:12 +0100 Subject: [PATCH] testcase for issue 259: cells are not merged in result file --- .../src/test/java/org/jxls/TestWorkbook.java | 7 ++++ .../src/test/java/org/jxls3/Issue259Test.java | 33 ++++++++++++++++++ .../resources/org/jxls3/Issue259Test.xlsx | Bin 0 -> 10916 bytes 3 files changed, 40 insertions(+) create mode 100644 jxls-poi/src/test/java/org/jxls3/Issue259Test.java create mode 100644 jxls-poi/src/test/resources/org/jxls3/Issue259Test.xlsx diff --git a/jxls-poi/src/test/java/org/jxls/TestWorkbook.java b/jxls-poi/src/test/java/org/jxls/TestWorkbook.java index a526f5d9..0bafc6bc 100644 --- a/jxls-poi/src/test/java/org/jxls/TestWorkbook.java +++ b/jxls-poi/src/test/java/org/jxls/TestWorkbook.java @@ -180,4 +180,11 @@ public void close() { } } } + + /** + * @return all merged cell regions of current sheet + */ + public List getMergedRegions() { + return sheet.getMergedRegions(); + } } diff --git a/jxls-poi/src/test/java/org/jxls3/Issue259Test.java b/jxls-poi/src/test/java/org/jxls3/Issue259Test.java new file mode 100644 index 00000000..27fd57ae --- /dev/null +++ b/jxls-poi/src/test/java/org/jxls3/Issue259Test.java @@ -0,0 +1,33 @@ +package org.jxls3; + +import static org.junit.Assert.assertTrue; + +import java.util.HashMap; +import java.util.List; + +import org.apache.poi.ss.util.CellRangeAddress; +import org.junit.Test; +import org.jxls.Jxls3Tester; +import org.jxls.TestWorkbook; +import org.jxls.transform.poi.JxlsPoiTemplateFillerBuilder; + +/** + * Merged cell region outside jx:area is missing + */ +public class Issue259Test { + + @Test + public void test() { + // Test + Jxls3Tester tester = Jxls3Tester.xlsx(getClass()); + tester.test(new HashMap<>(), JxlsPoiTemplateFillerBuilder.newInstance()); + + // Verify + try (TestWorkbook w = tester.getWorkbook()) { + w.selectSheet(0); + List mergedRegions = w.getMergedRegions(); + assertTrue("Missing merged region B5:C5", mergedRegions.stream().anyMatch(i -> "B5:C5".equals(i.formatAsString()))); + assertTrue("Missing merged region A1:C3", mergedRegions.stream().anyMatch(i -> "A1:C3".equals(i.formatAsString()))); + } + } +} diff --git a/jxls-poi/src/test/resources/org/jxls3/Issue259Test.xlsx b/jxls-poi/src/test/resources/org/jxls3/Issue259Test.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..11c384966970baae1908c6fd78dd75da275d3fe5 GIT binary patch literal 10916 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 EKRcQcDgXcg literal 0 HcmV?d00001