summaryrefslogtreecommitdiffstats
path: root/poi-examples
diff options
context:
space:
mode:
Diffstat (limited to 'poi-examples')
-rw-r--r--poi-examples/src/main/java/org/apache/poi/examples/ss/ExcelComparator.java141
1 files changed, 104 insertions, 37 deletions
diff --git a/poi-examples/src/main/java/org/apache/poi/examples/ss/ExcelComparator.java b/poi-examples/src/main/java/org/apache/poi/examples/ss/ExcelComparator.java
index e0340a2be6..4f021f978f 100644
--- a/poi-examples/src/main/java/org/apache/poi/examples/ss/ExcelComparator.java
+++ b/poi-examples/src/main/java/org/apache/poi/examples/ss/ExcelComparator.java
@@ -23,6 +23,7 @@ import java.util.*;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Color;
import org.apache.poi.ss.usermodel.DateUtil;
@@ -91,7 +92,7 @@ public class ExcelComparator {
Cell cell;
}
- private List<String> listOfDifferences = new ArrayList<>();
+ private final List<String> listOfDifferences = new ArrayList<>();
private final DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ROOT);
@@ -341,12 +342,17 @@ public class ExcelComparator {
* Checks if cell alignment matches.
*/
private void isCellAlignmentMatches(Locator loc1, Locator loc2) {
- if(loc1.cell.getCellStyle() == null || loc2.cell.getCellStyle() == null) {
+ CellStyle style1 = loc1.cell.getCellStyle();
+ if (style1 == null) {
+ return;
+ }
+ CellStyle style2 = loc2.cell.getCellStyle();
+ if (style2 == null) {
return;
}
- HorizontalAlignment align1 = loc1.cell.getCellStyle().getAlignment();
- HorizontalAlignment align2 = loc2.cell.getCellStyle().getAlignment();
+ HorizontalAlignment align1 = style1.getAlignment();
+ HorizontalAlignment align2 = style2.getAlignment();
if (align1 != align2) {
addMessage(loc1, loc2,
"Cell Alignment does not Match ::",
@@ -360,13 +366,19 @@ public class ExcelComparator {
* Checks if cell border bottom matches.
*/
private void isCellBorderMatches(Locator loc1, Locator loc2, char borderSide) {
- if (!(loc1.cell instanceof XSSFCell) ||
- loc1.cell.getCellStyle() == null || loc2.cell.getCellStyle() == null) {
+ if (!(loc1.cell instanceof XSSFCell)) {
+ return;
+ }
+
+ CellStyle style1 = loc1.cell.getCellStyle();
+ if (style1 == null) {
+ return;
+ }
+ CellStyle style2 = loc2.cell.getCellStyle();
+ if (style2 == null) {
return;
}
- XSSFCellStyle style1 = ((XSSFCell)loc1.cell).getCellStyle();
- XSSFCellStyle style2 = ((XSSFCell)loc2.cell).getCellStyle();
boolean b1, b2;
String borderName;
switch (borderSide) {
@@ -482,12 +494,17 @@ public class ExcelComparator {
* Checks if cell fill pattern matches.
*/
private void isCellFillPatternMatches(Locator loc1, Locator loc2) {
- if(loc1.cell.getCellStyle() == null || loc2.cell.getCellStyle() == null) {
+ CellStyle style1 = loc1.cell.getCellStyle();
+ if (style1 == null) {
+ return;
+ }
+ CellStyle style2 = loc2.cell.getCellStyle();
+ if (style2 == null) {
return;
}
- FillPatternType fill1 = loc1.cell.getCellStyle().getFillPattern();
- FillPatternType fill2 = loc2.cell.getCellStyle().getFillPattern();
+ FillPatternType fill1 = style1.getFillPattern();
+ FillPatternType fill2 = style2.getFillPattern();
if (fill1 != fill2) {
addMessage(loc1, loc2,
"Cell Fill pattern does not Match ::",
@@ -501,8 +518,16 @@ public class ExcelComparator {
* Checks if cell font bold matches.
*/
private void isCellFontBoldMatches(Locator loc1, Locator loc2) {
- if (!(loc1.cell instanceof XSSFCell) ||
- loc1.cell.getCellStyle() == null || loc2.cell.getCellStyle() == null) {
+ if (!(loc1.cell instanceof XSSFCell)) {
+ return;
+ }
+
+ CellStyle style1 = loc1.cell.getCellStyle();
+ if (style1 == null) {
+ return;
+ }
+ CellStyle style2 = loc2.cell.getCellStyle();
+ if (style2 == null) {
return;
}
@@ -510,8 +535,8 @@ public class ExcelComparator {
return;
}
- boolean b1 = ((XSSFCell)loc1.cell).getCellStyle().getFont().getBold();
- boolean b2 = ((XSSFCell)loc2.cell).getCellStyle().getFont().getBold();
+ boolean b1 = ((XSSFCellStyle)style1).getFont().getBold();
+ boolean b2 = ((XSSFCellStyle)style2).getFont().getBold();
if (b1 != b2) {
addMessage(loc1, loc2,
CELL_FONT_ATTRIBUTES_DOES_NOT_MATCH,
@@ -525,8 +550,16 @@ public class ExcelComparator {
* Checks if cell font family matches.
*/
private void isCellFontFamilyMatches(Locator loc1, Locator loc2) {
- if (!(loc1.cell instanceof XSSFCell) ||
- loc1.cell.getCellStyle() == null || loc2.cell.getCellStyle() == null) {
+ if (!(loc1.cell instanceof XSSFCell)) {
+ return;
+ }
+
+ CellStyle style1 = loc1.cell.getCellStyle();
+ if (style1 == null) {
+ return;
+ }
+ CellStyle style2 = loc2.cell.getCellStyle();
+ if (style2 == null) {
return;
}
@@ -534,8 +567,8 @@ public class ExcelComparator {
return;
}
- String family1 = ((XSSFCell)loc1.cell).getCellStyle().getFont().getFontName();
- String family2 = ((XSSFCell)loc2.cell).getCellStyle().getFont().getFontName();
+ String family1 = ((XSSFCellStyle)style1).getFont().getFontName();
+ String family2 = ((XSSFCellStyle)style2).getFont().getFontName();
if (!family1.equals(family2)) {
addMessage(loc1, loc2, "Cell Font Family does not Match ::", family1, family2);
}
@@ -559,8 +592,16 @@ public class ExcelComparator {
* Checks if cell font italics matches.
*/
private void isCellFontItalicsMatches(Locator loc1, Locator loc2) {
- if (!(loc1.cell instanceof XSSFCell) ||
- loc1.cell.getCellStyle() == null || loc2.cell.getCellStyle() == null) {
+ if (!(loc1.cell instanceof XSSFCell)) {
+ return;
+ }
+
+ CellStyle style1 = loc1.cell.getCellStyle();
+ if (style1 == null) {
+ return;
+ }
+ CellStyle style2 = loc2.cell.getCellStyle();
+ if (style2 == null) {
return;
}
@@ -568,8 +609,8 @@ public class ExcelComparator {
return;
}
- boolean b1 = ((XSSFCell)loc1.cell).getCellStyle().getFont().getItalic();
- boolean b2 = ((XSSFCell)loc2.cell).getCellStyle().getFont().getItalic();
+ boolean b1 = ((XSSFCellStyle)style1).getFont().getItalic();
+ boolean b2 = ((XSSFCellStyle)style2).getFont().getItalic();
if (b1 != b2) {
addMessage(loc1, loc2,
CELL_FONT_ATTRIBUTES_DOES_NOT_MATCH,
@@ -583,8 +624,16 @@ public class ExcelComparator {
* Checks if cell font size matches.
*/
private void isCellFontSizeMatches(Locator loc1, Locator loc2) {
- if (!(loc1.cell instanceof XSSFCell) ||
- loc1.cell.getCellStyle() == null || loc2.cell.getCellStyle() == null) {
+ if (!(loc1.cell instanceof XSSFCell)) {
+ return;
+ }
+
+ CellStyle style1 = loc1.cell.getCellStyle();
+ if (style1 == null) {
+ return;
+ }
+ CellStyle style2 = loc2.cell.getCellStyle();
+ if (style2 == null) {
return;
}
@@ -592,8 +641,8 @@ public class ExcelComparator {
return;
}
- short size1 = ((XSSFCell)loc1.cell).getCellStyle().getFont().getFontHeightInPoints();
- short size2 = ((XSSFCell)loc2.cell).getCellStyle().getFont().getFontHeightInPoints();
+ short size1 = ((XSSFCellStyle)style1).getFont().getFontHeightInPoints();
+ short size2 = ((XSSFCellStyle)style2).getFont().getFontHeightInPoints();
if (size1 != size2) {
addMessage(loc1, loc2,
"Cell Font Size does not Match ::",
@@ -607,12 +656,17 @@ public class ExcelComparator {
* Checks if cell hidden matches.
*/
private void isCellHiddenMatches(Locator loc1, Locator loc2) {
- if (loc1.cell.getCellStyle() == null || loc2.cell.getCellStyle() == null) {
+ CellStyle style1 = loc1.cell.getCellStyle();
+ if (style1 == null) {
+ return;
+ }
+ CellStyle style2 = loc2.cell.getCellStyle();
+ if (style2 == null) {
return;
}
- boolean b1 = loc1.cell.getCellStyle().getHidden();
- boolean b2 = loc1.cell.getCellStyle().getHidden();
+ boolean b1 = style1.getHidden();
+ boolean b2 = style2.getHidden();
if (b1 != b2) {
addMessage(loc1, loc2,
"Cell Visibility does not Match ::",
@@ -626,12 +680,17 @@ public class ExcelComparator {
* Checks if cell locked matches.
*/
private void isCellLockedMatches(Locator loc1, Locator loc2) {
- if (loc1.cell.getCellStyle() == null || loc2.cell.getCellStyle() == null) {
+ CellStyle style1 = loc1.cell.getCellStyle();
+ if (style1 == null) {
+ return;
+ }
+ CellStyle style2 = loc2.cell.getCellStyle();
+ if (style2 == null) {
return;
}
- boolean b1 = loc1.cell.getCellStyle().getLocked();
- boolean b2 = loc1.cell.getCellStyle().getLocked();
+ boolean b1 = style1.getLocked();
+ boolean b2 = style2.getLocked();
if (b1 != b2) {
addMessage(loc1, loc2,
"Cell Protection does not Match ::",
@@ -664,8 +723,16 @@ public class ExcelComparator {
private void isCellUnderLineMatches(Locator loc1, Locator loc2) {
// TODO: distinguish underline type
- if (!(loc1.cell instanceof XSSFCell) ||
- loc1.cell.getCellStyle() == null || loc2.cell.getCellStyle() == null) {
+ if (!(loc1.cell instanceof XSSFCell)) {
+ return;
+ }
+
+ CellStyle style1 = loc1.cell.getCellStyle();
+ if (style1 == null) {
+ return;
+ }
+ CellStyle style2 = loc2.cell.getCellStyle();
+ if (style2 == null) {
return;
}
@@ -673,8 +740,8 @@ public class ExcelComparator {
return;
}
- byte b1 = ((XSSFCell)loc1.cell).getCellStyle().getFont().getUnderline();
- byte b2 = ((XSSFCell)loc2.cell).getCellStyle().getFont().getUnderline();
+ byte b1 = ((XSSFCellStyle)style1).getFont().getUnderline();
+ byte b2 = ((XSSFCellStyle)style2).getFont().getUnderline();
if (b1 != b2) {
addMessage(loc1, loc2,
CELL_FONT_ATTRIBUTES_DOES_NOT_MATCH,