下载资源后端资源详情
net.zip
大小:92.37KB
价格:48积分
下载量:0
评分:
5.0
上传者:mekings13
更新日期:2024-08-02

net.sf.jxls重写包 解决poi升级版本后jxls版本过低不兼容的问题

资源文件列表(大概)

文件名
大小
net/
-
net/sf/
-
net/sf/jxls/
-
net/sf/jxls/controller/
-
net/sf/jxls/controller/SheetCellFinder.java
318B
net/sf/jxls/controller/SheetTransformationController.java
2.17KB
net/sf/jxls/controller/SheetTransformationControllerImpl.java
8.26KB
net/sf/jxls/controller/WorkbookCellFinder.java
326B
net/sf/jxls/controller/WorkbookCellFinderImpl.java
1.27KB
net/sf/jxls/controller/WorkbookTransformationController.java
628B
net/sf/jxls/controller/WorkbookTransformationControllerImpl.java
1.34KB
net/sf/jxls/exception/
-
net/sf/jxls/exception/ParsePropertyException.java
456B
net/sf/jxls/exception/TaglibRegistrationException.java
543B
net/sf/jxls/formula/
-
net/sf/jxls/formula/BaseFormulaResolver.java
6.65KB
net/sf/jxls/formula/CellRef.java
9.35KB
net/sf/jxls/formula/CommonFormulaResolver.java
5.38KB
net/sf/jxls/formula/Formula.java
8.13KB
net/sf/jxls/formula/FormulaController.java
370B
net/sf/jxls/formula/FormulaControllerImpl.java
6.87KB
net/sf/jxls/formula/FormulaPart.java
9.89KB
net/sf/jxls/formula/FormulaResolver.java
663B
net/sf/jxls/formula/ListRange.java
1.97KB
net/sf/jxls/parser/
-
net/sf/jxls/parser/Aggregator.java
2.54KB
net/sf/jxls/parser/Cell.java
4.58KB
net/sf/jxls/parser/CellParser.java
13.88KB
net/sf/jxls/parser/Expression.java
5.18KB
net/sf/jxls/parser/ExpressionCollectionParser.java
4.12KB
net/sf/jxls/parser/ExpressionParser.java
1.47KB
net/sf/jxls/parser/Property.java
3.59KB
net/sf/jxls/processor/
-
net/sf/jxls/processor/CellProcessor.java
523B
net/sf/jxls/processor/PropertyPreprocessor.java
464B
net/sf/jxls/processor/RowProcessor.java
303B
net/sf/jxls/report/
-
net/sf/jxls/report/ReportManager.java
218B
net/sf/jxls/report/ReportManagerImpl.java
1.38KB
net/sf/jxls/report/ResultSetCollection.java
4.48KB
net/sf/jxls/tag/
-
net/sf/jxls/tag/AttributeInfo.java
836B
net/sf/jxls/tag/BaseTag.java
549B
net/sf/jxls/tag/Block.java
5.42KB
net/sf/jxls/tag/ForEachTag.java
17KB
net/sf/jxls/tag/IfTag.java
4.5KB
net/sf/jxls/tag/JxTaglib.java
771B
net/sf/jxls/tag/LoopStatus.java
368B
net/sf/jxls/tag/OutTag.java
4.49KB
net/sf/jxls/tag/OutlineTag.java
2.24KB
net/sf/jxls/tag/Point.java
2.01KB
net/sf/jxls/tag/SQLTag.java
4.91KB
net/sf/jxls/tag/Tag.java
740B
net/sf/jxls/tag/TagContext.java
1.88KB
net/sf/jxls/tag/TagInfo.java
984B
net/sf/jxls/tag/TagLib.java
148B
net/sf/jxls/tag/TaglibXMLParser.java
424B
net/sf/jxls/tag/jx-core.xml
2.23KB
net/sf/jxls/transformation/
-
net/sf/jxls/transformation/BaseTransformation.java
1.83KB
net/sf/jxls/transformation/BlockTransformation.java
2.22KB
net/sf/jxls/transformation/DuplicateTransformation.java
4.27KB
net/sf/jxls/transformation/DuplicateTransformationByColumns.java
3.85KB
net/sf/jxls/transformation/RemoveTransformation.java
1.44KB
net/sf/jxls/transformation/ResultTransformation.java
3.39KB
net/sf/jxls/transformation/ShiftTransformation.java
2.97KB
net/sf/jxls/transformation/Transformation.java
428B
net/sf/jxls/transformation/TransformationType.java
648B
net/sf/jxls/transformer/
-
net/sf/jxls/transformer/BaseRowTransformer.java
2.6KB
net/sf/jxls/transformer/CellTransformer.java
7.38KB
net/sf/jxls/transformer/ChainTransformer.java
2.96KB
net/sf/jxls/transformer/CollectionRowTransformer.java
9.04KB
net/sf/jxls/transformer/Configuration.java
8.96KB
net/sf/jxls/transformer/MergedRegion.java
1KB
net/sf/jxls/transformer/Row.java
7.82KB
net/sf/jxls/transformer/RowCollection.java
4.76KB
net/sf/jxls/transformer/RowTransformer.java
621B
net/sf/jxls/transformer/Sheet.java
3.39KB
net/sf/jxls/transformer/SheetTransformer.java
15.38KB
net/sf/jxls/transformer/SimpleRowTransformer.java
3.21KB
net/sf/jxls/transformer/TagRowTransformer.java
1.29KB
net/sf/jxls/transformer/Workbook.java
3.38KB
net/sf/jxls/transformer/XLSTransformer.java
27.54KB
net/sf/jxls/util/
-
net/sf/jxls/util/FormulaUtil.java
1.91KB
net/sf/jxls/util/GroupData.java
599B
net/sf/jxls/util/ReportUtil.java
5.35KB
net/sf/jxls/util/SheetHelper.java
3.08KB
net/sf/jxls/util/TagBodyHelper.java
11.05KB
net/sf/jxls/util/Util.java
46.92KB

资源内容介绍

jxls重写包,解决poi升级版本后jxls版本过低不兼容的问题;由于jxls后续没有维护,版本一直处于较老版本,而且jxls内部使用了poi的东西,poi一直有在升级版本,如果项目上把poi版本升了上来,jxls会不兼容,需要重写才能使用
package net.sf.jxls.util;import net.sf.jxls.transformer.RowCollection;import org.apache.commons.beanutils.PropertyUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.poi.ss.usermodel.*;import org.apache.poi.ss.util.CellRangeAddress;import org.apache.poi.ss.util.CellReference;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.lang.reflect.InvocationTargetException;import java.util.*;import java.util.regex.Pattern;/** * This class contains many utility methods used by jXLS framework * * @author Leonid Vysochyn * @author Vincent Dutat */public final class Util { protected static final Log log = LogFactory.getLog(Util.class); private static final String[][] ENTITY_ARRAY = { { "quot", "34" }, // " - // double // - // quote { "amp", "38" }, // & - ampersand { "lt", "60" }, // < - less-than { "gt", "62" }, // > - greater-than { "apos", "39" } // XML apostrophe }; private static Map xmlEntities = new HashMap(); static { for (int i = 0; i < ENTITY_ARRAY.length; i++) { xmlEntities.put(ENTITY_ARRAY[i][1], ENTITY_ARRAY[i][0]); } } public static void removeRowCollectionPropertiesFromRow( RowCollection rowCollection) { int startRow = rowCollection.getParentRow().getPoiRow().getRowNum(); Sheet sheet = rowCollection.getParentRow().getSheet() .getPoiSheet(); for (int i = 0, c = rowCollection.getDependentRowNumber(); i <= c; i++) { Row hssfRow = sheet.getRow(startRow + i); if (hssfRow.getFirstCellNum() >= 0 && hssfRow.getLastCellNum() >= 0) { for (int j = hssfRow.getFirstCellNum(), c2 = hssfRow.getLastCellNum(); j <= c2; j++) { Cell cell = hssfRow.getCell(j); removeRowCollectionPropertyFromCell(cell, rowCollection .getCollectionProperty().getFullCollectionName()); } } } } private static void removeRowCollectionPropertyFromCell(Cell cell, String collectionName) { String regex = "[-+*/().A-Za-z_0-9\\s]*"; if (cell != null && cell.getCellType() == CellType.STRING) { String cellValue = cell.getRichStringCellValue().getString(); String strToReplace = "\\$\\{" + regex + collectionName.replaceAll("\\.", "\\\\.") + "\\." + regex + "\\}"; cell.setCellValue(cell.getSheet().getWorkbook().getCreationHelper().createRichTextString(cellValue.replaceAll( strToReplace, ""))); } } /** * Removes merged region from sheet * * @param sheet * @param region */ public static void removeMergedRegion(Sheet sheet, CellRangeAddress region) { int index = getMergedRegionIndex(sheet, region); if (index >= 0) { sheet.removeMergedRegion(index); } } /** * returns merged region index * * @param sheet * @param mergedRegion * @return index of mergedRegion or -1 if the region not found */ private static int getMergedRegionIndex(Sheet sheet, CellRangeAddress mergedRegion) { for (int i = 0, c = sheet.getNumMergedRegions(); i < c; i++) { CellRangeAddress region = getMergedRegion(sheet, i); if (areRegionsEqual(region, mergedRegion)) { return i; } } return -1; } public static boolean areRegionsEqual(CellRangeAddress region1, CellRangeAddress region2) { if ((region1 == null && region2 != null) || (region1 != null && region2 == null)) { return false; } if (region1 == null) { return true; } return (region1.getFirstColumn() == region2.getFirstColumn() && region1.getLastColumn() == region2.getLastColumn() && region1.getFirstRow() == region2.getFirstRow() && region2 .getLastRow() == region2.getLastRow()); } private static CellRangeAddress getMergedRegion(Sheet sheet, int i) { CellRangeAddress region = sheet.getMergedRegion(i); return region; } protected static boolean isNewMergedRegion(CellRangeAddress region, Collection mergedRegions) { for (Iterator iterator = mergedRegions.iterator(); iterator.hasNext();) { CellRangeAddress cellRangeAddress = (CellRangeAddress) iterator .next(); if (areRegionsEqual(cellRangeAddress, region)) { return false; } } return true; } public static CellRangeAddress getMergedRegion(Sheet sheet, int rowNum, int cellNum) { for (int i = 0, c = sheet.getNumMergedRegions(); i < c; i++) { CellRangeAddress merged = getMergedRegion(sheet, i); if (isRangeContainsCell(merged, rowNum, cellNum)) { return merged; } } return null; } public static boolean isRangeContainsCell(CellRangeAddress range, int row, int col) { if ((range.getFirstRow() <= row) && (range.getLastRow() >= row) && (range.getFirstColumn() <= col) && (range.getLastColumn() >= col)) { return true; } return false; } public static boolean removeMergedRegion(Sheet sheet, int rowNum, int cellNum) { Set mergedRegionNumbersToRemove = new TreeSet(); for (int i = 0, c = sheet.getNumMergedRegions(); i < c; i++) { CellRangeAddress merged = getMergedRegion(sheet, i); if (isRangeContainsCell(merged, rowNum, cellNum)) { mergedRegionNumbersToRemove.add(i); } } for (Iterator iterator = mergedRegionNumbersToRemove.iterator(); iterator .hasNext();) { Integer regionNumber = (Integer) iterator.next(); sheet.removeMergedRegion(regionNumber.intValue()); } return !mergedRegionNumbersToRemove.isEmpty(); } public static void prepareCollectionPropertyInRowForDuplication( RowCollection rowCollection, String collectionItemName) { int startRow = rowCollection.getParentRow().getPoiRow().getRowNum(); Sheet sheet = rowCollection.getParentRow().getSheet() .getPoiSheet(); for (int i = 0, c = rowCollection.getDependentRowNumber(); i <= c; i++) { Row hssfRow = sheet.getRow(startRow + i); if (hssfRow.getFirstCellNum() >= 0 && hssfRow.getLastCellNum() >= 0) { for (int j = hssfRow.getFirstCellNum(), c2 = hssfRow.getLastCellNum(); j <= c2; j++) { Cell cell = hssfRow.getCell(j); prepareCollectionPropertyInCellForDuplication(cell, rowCollection.getCollectionProperty() .getFullCollectionName(), collectionItemName); } } } } private static void prepareCollectionPropertyInCellForDuplication( Cell cell, String collectionName, String collectionItemName) { if (cell != null && cell.getCellType() == CellType.STRING) { String cellValue = cell.getRic

用户评论 (0)

发表评论

captcha

相关资源

基于JAVA的共享汽车管理系统(Vue.js+SpringBoot+MySQL)

基于Vue.js和SpringBoot的共享汽车管理系统是一个高效、易用的汽车共享解决方案,它包括管理后台和用户网页端,支持管理员和普通用户角色。系统主要功能模块包括汽车信息管理,允许管理员添加、编辑和删除汽车信息;汽车投放管理,用于控制汽车的投放数量和投放地点;汽车入库管理,记录汽车的入库时间和状态;汽车订单管理,用户可以查看、预订和取消订单;以及汽车归还管理,记录用户归还汽车的时间和状态。整个系统采用前后端分离的架构,前端使用Vue.js进行开发,后端使用SpringBoot框架,保证了系统的高性能和可扩展性。演示录屏:https://www.bilibili.com/video/BV1xx4y187t5配套教程:https://www.bilibili.com/video/BV1pW4y1P7GR

9.43MB33积分

错误代码提问英雄哥错误代码提问英雄哥错误代码提问英雄哥

错误代码提问英雄哥错误代码提问英雄哥错误代码提问英雄哥

761B50积分

基于JAVA的智慧图书管理系统(Vue.js+SpringBoot+MySQL)

基于Vue.js和SpringBoot的智慧图书管理系统是一个高效、易用的图书管理解决方案,它分为用户前台和管理后台两个部分,以满足不同角色的需求。用户前台主要面向普通用户,提供资料信息浏览、公告信息查看、论坛交流等功能,使用户能够方便地获取所需信息并参与社区互动。管理后台则为管理员提供了全面的图书管理功能,包括资料信息的增删改查、公告信息的发布与编辑、论坛管理以及资料类型的分类与维护等。整个系统采用现代化的前后端分离架构,前端使用Vue.js框架实现动态交互和用户友好的界面设计,后端则基于SpringBoot框架提供稳定、高效的数据处理和业务逻辑支持,确保系统的高性能和可扩展性。演示录屏:https://www.bilibili.com/video/BV18f421U7GG配套教程:https://www.bilibili.com/video/BV1pW4y1P7GR

24.82MB28积分

C#数据库连接SqlServer源码示例

源码包括,C#基础练习,数据类型(数组、字符串、类型转换、枚举、列表、字典)、语句结构、ADO.NET,案例源码

490.31KB14积分