From 531055e6bd66cd3ee7f79b9b646d991bbfda7aa0 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 16 Feb 2022 12:29:57 +0800 Subject: [PATCH] add compact to poi5.2 --- CHANGELOG.md | 4 +++- .../main/java/cn/hutool/core/io/FileUtil.java | 6 ++++++ .../java/cn/hutool/core/io/FileUtilTest.java | 2 +- .../java/cn/hutool/poi/excel/ExcelFileUtil.java | 6 +++--- .../java/cn/hutool/poi/excel/ExcelReader.java | 4 ++-- .../main/java/cn/hutool/poi/excel/StyleSet.java | 10 +++++----- .../hutool/poi/excel/cell/FormulaCellValue.java | 4 ++-- .../excel/cell/setters/HyperlinkCellSetter.java | 1 - .../poi/excel/editors/NumericToIntEditor.java | 8 ++++---- .../hutool/poi/excel/sax/Excel07SaxReader.java | 2 +- .../cn/hutool/poi/excel/sax/ExcelSaxUtil.java | 16 ++++++++-------- .../poi/excel/sax/SheetDataSaxHandler.java | 6 +++--- .../main/java/cn/hutool/poi/ofd/OfdWriter.java | 1 + .../main/java/cn/hutool/poi/word/PicType.java | 1 + 14 files changed, 40 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74880c90a..6947926d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,10 @@ # 🚀Changelog ------------------------------------------------------------------------------------------------------------- -# 5.7.22 (2022-02-14) +# 5.7.22 (2022-02-16) ### 🐣新特性 +* 【poi 】 ExcelUtil.readBySax增加对POI-5.2.0的兼容性(issue#I4TJF4@gitee) ### 🐞Bug修复 ------------------------------------------------------------------------------------------------------------- @@ -38,6 +39,7 @@ * 【dfa 】 修复密集匹配和贪婪匹配冲突问题(issue#2126@Github) * 【db 】 修复c3p0丢失信息问题(issue#I4T7XZ@Gitee) * 【http 】 修复Action中HttpExchange没有关闭问题 +* 【http 】 修复Action中HttpExchange没有关闭问题 ------------------------------------------------------------------------------------------------------------- # 5.7.20 (2022-01-20) diff --git a/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java index fff7844eb..0d1b3283e 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java @@ -899,10 +899,12 @@ public class FileUtil extends PathUtil { * 调用 Java 虚拟机时,可以为该系统属性赋予不同的值,但不保证对该属性的编程更改对该方法使用的临时目录有任何影响。 * @return 临时文件 * @throws IORuntimeException IO异常 + * @since 5.7.22 */ public static File createTempFile() throws IORuntimeException { return createTempFile("hutool", null, null, true); } + /** * 在默认临时文件目录下创建临时文件,创建后的文件名为 prefix[Randon].suffix。 * 默认临时文件目录由系统属性 java.io.tmpdir 指定。 @@ -913,10 +915,12 @@ public class FileUtil extends PathUtil { * @param isReCreat 是否重新创建文件(删掉原来的,创建新的) * @return 临时文件 * @throws IORuntimeException IO异常 + * @since 5.7.22 */ public static File createTempFile(String suffix, boolean isReCreat) throws IORuntimeException { return createTempFile("hutool", suffix, null, isReCreat); } + /** * 在默认临时文件目录下创建临时文件,创建后的文件名为 prefix[Randon].suffix。 * 默认临时文件目录由系统属性 java.io.tmpdir 指定。 @@ -929,10 +933,12 @@ public class FileUtil extends PathUtil { * @param isReCreat 是否重新创建文件(删掉原来的,创建新的) * @return 临时文件 * @throws IORuntimeException IO异常 + * @since 5.7.22 */ public static File createTempFile(String prefix, String suffix, boolean isReCreat) throws IORuntimeException { return createTempFile(prefix, suffix, null, isReCreat); } + /** * 创建临时文件
* 创建后的文件名为 prefix[Randon].tmp diff --git a/hutool-core/src/test/java/cn/hutool/core/io/FileUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/io/FileUtilTest.java index 53e8481ac..d33cbb29f 100644 --- a/hutool-core/src/test/java/cn/hutool/core/io/FileUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/io/FileUtilTest.java @@ -460,7 +460,7 @@ public class FileUtilTest { Assert.assertTrue(nullDirTempFile.exists()); File suffixDirTempFile = FileUtil.createTempFile(".xlsx",true); - Assert.assertTrue(FileUtil.getSuffix(suffixDirTempFile).equals("xlsx")); + Assert.assertEquals("xlsx", FileUtil.getSuffix(suffixDirTempFile)); File prefixDirTempFile = FileUtil.createTempFile("prefix",".xlsx",true); Assert.assertTrue(FileUtil.getPrefix(prefixDirTempFile).startsWith("prefix")); diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelFileUtil.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelFileUtil.java index ec0140e03..b65b7f20c 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelFileUtil.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelFileUtil.java @@ -62,16 +62,16 @@ public class ExcelFileUtil { * 如果强转成PushbackInputStream在调用FileMagic.valueOf(inputStream)时会报错 * {@link FileMagic} * 报错内容:getFileMagic() only operates on streams which support mark(int) - * 此处修改成 final InputStream inputStream = FileMagic.prepareToCheckMagic(in) + * 此处修改成 final InputStream in = FileMagic.prepareToCheckMagic(in) * * @param in {@link InputStream} * @author kefan.qu */ private static FileMagic getFileMagic(InputStream in) { FileMagic magic; - final InputStream inputStream = FileMagic.prepareToCheckMagic(in); + in = FileMagic.prepareToCheckMagic(in); try { - magic = FileMagic.valueOf(inputStream); + magic = FileMagic.valueOf(in); } catch (IOException e) { throw new IORuntimeException(e); } diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelReader.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelReader.java index 2ff3d55e6..6f17ed93d 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelReader.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelReader.java @@ -283,7 +283,7 @@ public class ExcelReader extends ExcelBase { /** * 读取工作簿中指定的Sheet,此方法为类流处理方式,当读到指定单元格时,会调用CellEditor接口
- * 用户通过实现此接口,可以更加灵活的处理每个单元格的数据。 + * 用户通过实现此接口,可以更加灵活地处理每个单元格的数据。 * * @param cellHandler 单元格处理器,用于处理读到的单元格及其数据 * @since 5.3.8 @@ -294,7 +294,7 @@ public class ExcelReader extends ExcelBase { /** * 读取工作簿中指定的Sheet,此方法为类流处理方式,当读到指定单元格时,会调用CellEditor接口
- * 用户通过实现此接口,可以更加灵活的处理每个单元格的数据。 + * 用户通过实现此接口,可以更加灵活地处理每个单元格的数据。 * * @param startRowIndex 起始行(包含,从0开始计数) * @param endRowIndex 结束行(包含,从0开始计数) diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/StyleSet.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/StyleSet.java index 6d94b4815..24256a862 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/StyleSet.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/StyleSet.java @@ -33,23 +33,23 @@ public class StyleSet implements Serializable { /** * 标题样式 */ - protected CellStyle headCellStyle; + protected final CellStyle headCellStyle; /** * 默认样式 */ - protected CellStyle cellStyle; + protected final CellStyle cellStyle; /** * 默认数字样式 */ - protected CellStyle cellStyleForNumber; + protected final CellStyle cellStyleForNumber; /** * 默认日期样式 */ - protected CellStyle cellStyleForDate; + protected final CellStyle cellStyleForDate; /** * 默认链接样式 */ - protected CellStyle cellStyleForHyperlink; + protected final CellStyle cellStyleForHyperlink; /** * 构造 diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/FormulaCellValue.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/FormulaCellValue.java index db3104681..132c3809a 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/FormulaCellValue.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/FormulaCellValue.java @@ -18,11 +18,11 @@ public class FormulaCellValue implements CellValue, CellSetter { /** * 公式 */ - String formula; + private final String formula; /** * 结果,使用ExcelWriter时可以不用 */ - Object result; + private final Object result; /** * 构造 diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/HyperlinkCellSetter.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/HyperlinkCellSetter.java index 6bb0a64f4..c2e693091 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/HyperlinkCellSetter.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/HyperlinkCellSetter.java @@ -1,6 +1,5 @@ package cn.hutool.poi.excel.cell.setters; -import cn.hutool.core.lang.Console; import cn.hutool.poi.excel.cell.CellSetter; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Hyperlink; diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/editors/NumericToIntEditor.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/editors/NumericToIntEditor.java index 25f830d03..99f4a532f 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/editors/NumericToIntEditor.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/editors/NumericToIntEditor.java @@ -6,15 +6,15 @@ import cn.hutool.poi.excel.cell.CellEditor; /** * POI中NUMRIC类型的值默认返回的是Double类型,此编辑器用于转换其为int型 - * @author Looly * + * @author Looly */ -public class NumericToIntEditor implements CellEditor{ +public class NumericToIntEditor implements CellEditor { @Override public Object edit(Cell cell, Object value) { - if(value instanceof Number) { - return ((Number)value).intValue(); + if (value instanceof Number) { + return ((Number) value).intValue(); } return value; } diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/Excel07SaxReader.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/Excel07SaxReader.java index ee5c5710a..b50034cb3 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/Excel07SaxReader.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/Excel07SaxReader.java @@ -128,7 +128,7 @@ public class Excel07SaxReader implements ExcelSaxReader { // 获取共享字符串表 try { - this.handler.sharedStringsTable = xssfReader.getSharedStringsTable(); + this.handler.sharedStrings = xssfReader.getSharedStringsTable(); } catch (IOException e) { throw new IORuntimeException(e); } catch (InvalidFormatException e) { diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/ExcelSaxUtil.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/ExcelSaxUtil.java index 4c66c348a..f6fdcc217 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/ExcelSaxUtil.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/ExcelSaxUtil.java @@ -13,7 +13,7 @@ import org.apache.poi.hssf.eventusermodel.FormatTrackingHSSFListener; import org.apache.poi.hssf.record.CellValueRecordInterface; import org.apache.poi.ooxml.util.SAXHelper; import org.apache.poi.ss.usermodel.DataFormatter; -import org.apache.poi.xssf.model.SharedStringsTable; +import org.apache.poi.xssf.model.SharedStrings; import org.apache.poi.xssf.usermodel.XSSFRichTextString; import org.xml.sax.ContentHandler; import org.xml.sax.InputSource; @@ -53,13 +53,13 @@ public class ExcelSaxUtil { /** * 根据数据类型获取数据 * - * @param cellDataType 数据类型枚举 - * @param value 数据值 - * @param sharedStringsTable {@link SharedStringsTable} - * @param numFmtString 数字格式名 + * @param cellDataType 数据类型枚举 + * @param value 数据值 + * @param sharedStrings {@link SharedStrings} + * @param numFmtString 数字格式名 * @return 数据值 */ - public static Object getDataValue(CellDataType cellDataType, String value, SharedStringsTable sharedStringsTable, String numFmtString) { + public static Object getDataValue(CellDataType cellDataType, String value, SharedStrings sharedStrings, String numFmtString) { if (null == value) { return null; } @@ -85,7 +85,7 @@ public class ExcelSaxUtil { case SSTINDEX: try { final int index = Integer.parseInt(value); - result = sharedStringsTable.getItemAt(index).getString(); + result = sharedStrings.getItemAt(index).getString(); } catch (NumberFormatException e) { result = value; } @@ -208,8 +208,8 @@ public class ExcelSaxUtil { * @param formatIndex 格式索引,一般用于内建格式 * @param formatString 格式字符串 * @return 是否为日期格式 - * @since 5.5.3 * @see ExcelDateUtil#isDateFormat(int, String) + * @since 5.5.3 */ public static boolean isDateFormat(int formatIndex, String formatString) { return ExcelDateUtil.isDateFormat(formatIndex, formatString); diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/SheetDataSaxHandler.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/SheetDataSaxHandler.java index ea64bb888..5d61bde85 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/SheetDataSaxHandler.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/SheetDataSaxHandler.java @@ -6,7 +6,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.poi.excel.cell.FormulaCellValue; import cn.hutool.poi.excel.sax.handler.RowHandler; import org.apache.poi.ss.usermodel.BuiltinFormats; -import org.apache.poi.xssf.model.SharedStringsTable; +import org.apache.poi.xssf.model.SharedStrings; import org.apache.poi.xssf.model.StylesTable; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.xml.sax.Attributes; @@ -28,7 +28,7 @@ public class SheetDataSaxHandler extends DefaultHandler { // 单元格的格式表,对应style.xml protected StylesTable stylesTable; // excel 2007 的共享字符串表,对应sharedString.xml - protected SharedStringsTable sharedStringsTable; + protected SharedStrings sharedStrings; // sheet的索引,从0开始 protected int sheetIndex; @@ -238,7 +238,7 @@ public class SheetDataSaxHandler extends DefaultHandler { fillBlankCell(preCoordinate, curCoordinate, false); final String contentStr = StrUtil.trim(lastContent); - Object value = ExcelSaxUtil.getDataValue(this.cellDataType, contentStr, this.sharedStringsTable, this.numFmtString); + Object value = ExcelSaxUtil.getDataValue(this.cellDataType, contentStr, this.sharedStrings, this.numFmtString); if (false == this.lastFormula.isEmpty()) { value = new FormulaCellValue(StrUtil.trim(lastFormula), value); } diff --git a/hutool-poi/src/main/java/cn/hutool/poi/ofd/OfdWriter.java b/hutool-poi/src/main/java/cn/hutool/poi/ofd/OfdWriter.java index a7c79e30d..4aca4d561 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/ofd/OfdWriter.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/ofd/OfdWriter.java @@ -118,6 +118,7 @@ public class OfdWriter implements Serializable, Closeable { * @param div 节点,可以是段落、Canvas、Img或者填充 * @return this */ + @SuppressWarnings("rawtypes") public OfdWriter add(Div div) { this.doc.add(div); return this; diff --git a/hutool-poi/src/main/java/cn/hutool/poi/word/PicType.java b/hutool-poi/src/main/java/cn/hutool/poi/word/PicType.java index 3f438203b..5b63d2221 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/word/PicType.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/word/PicType.java @@ -22,6 +22,7 @@ public enum PicType { /** * 构造 + * * @param value 图片类型值 */ PicType(int value) {