首页下载资源后端net.sf.jxls重写包 解决poi升级版本后jxls版本过低不兼容的问题

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

mekings1392.37KB需要积分:1

资源文件列表:

net.zip 大约有91个文件
  1. net/
  2. net/sf/
  3. net/sf/jxls/
  4. net/sf/jxls/controller/
  5. net/sf/jxls/controller/SheetCellFinder.java 318B
  6. net/sf/jxls/controller/SheetTransformationController.java 2.17KB
  7. net/sf/jxls/controller/SheetTransformationControllerImpl.java 8.26KB
  8. net/sf/jxls/controller/WorkbookCellFinder.java 326B
  9. net/sf/jxls/controller/WorkbookCellFinderImpl.java 1.27KB
  10. net/sf/jxls/controller/WorkbookTransformationController.java 628B
  11. net/sf/jxls/controller/WorkbookTransformationControllerImpl.java 1.34KB
  12. net/sf/jxls/exception/
  13. net/sf/jxls/exception/ParsePropertyException.java 456B
  14. net/sf/jxls/exception/TaglibRegistrationException.java 543B
  15. net/sf/jxls/formula/
  16. net/sf/jxls/formula/BaseFormulaResolver.java 6.65KB
  17. net/sf/jxls/formula/CellRef.java 9.35KB
  18. net/sf/jxls/formula/CommonFormulaResolver.java 5.38KB
  19. net/sf/jxls/formula/Formula.java 8.13KB
  20. net/sf/jxls/formula/FormulaController.java 370B
  21. net/sf/jxls/formula/FormulaControllerImpl.java 6.87KB
  22. net/sf/jxls/formula/FormulaPart.java 9.89KB
  23. net/sf/jxls/formula/FormulaResolver.java 663B
  24. net/sf/jxls/formula/ListRange.java 1.97KB
  25. net/sf/jxls/parser/
  26. net/sf/jxls/parser/Aggregator.java 2.54KB
  27. net/sf/jxls/parser/Cell.java 4.58KB
  28. net/sf/jxls/parser/CellParser.java 13.88KB
  29. net/sf/jxls/parser/Expression.java 5.18KB
  30. net/sf/jxls/parser/ExpressionCollectionParser.java 4.12KB
  31. net/sf/jxls/parser/ExpressionParser.java 1.47KB
  32. net/sf/jxls/parser/Property.java 3.59KB
  33. net/sf/jxls/processor/
  34. net/sf/jxls/processor/CellProcessor.java 523B
  35. net/sf/jxls/processor/PropertyPreprocessor.java 464B
  36. net/sf/jxls/processor/RowProcessor.java 303B
  37. net/sf/jxls/report/
  38. net/sf/jxls/report/ReportManager.java 218B
  39. net/sf/jxls/report/ReportManagerImpl.java 1.38KB
  40. net/sf/jxls/report/ResultSetCollection.java 4.48KB
  41. net/sf/jxls/tag/
  42. net/sf/jxls/tag/AttributeInfo.java 836B
  43. net/sf/jxls/tag/BaseTag.java 549B
  44. net/sf/jxls/tag/Block.java 5.42KB
  45. net/sf/jxls/tag/ForEachTag.java 17KB
  46. net/sf/jxls/tag/IfTag.java 4.5KB
  47. net/sf/jxls/tag/JxTaglib.java 771B
  48. net/sf/jxls/tag/LoopStatus.java 368B
  49. net/sf/jxls/tag/OutTag.java 4.49KB
  50. net/sf/jxls/tag/OutlineTag.java 2.24KB
  51. net/sf/jxls/tag/Point.java 2.01KB
  52. net/sf/jxls/tag/SQLTag.java 4.91KB
  53. net/sf/jxls/tag/Tag.java 740B
  54. net/sf/jxls/tag/TagContext.java 1.88KB
  55. net/sf/jxls/tag/TagInfo.java 984B
  56. net/sf/jxls/tag/TagLib.java 148B
  57. net/sf/jxls/tag/TaglibXMLParser.java 424B
  58. net/sf/jxls/tag/jx-core.xml 2.23KB
  59. net/sf/jxls/transformation/
  60. net/sf/jxls/transformation/BaseTransformation.java 1.83KB
  61. net/sf/jxls/transformation/BlockTransformation.java 2.22KB
  62. net/sf/jxls/transformation/DuplicateTransformation.java 4.27KB
  63. net/sf/jxls/transformation/DuplicateTransformationByColumns.java 3.85KB
  64. net/sf/jxls/transformation/RemoveTransformation.java 1.44KB
  65. net/sf/jxls/transformation/ResultTransformation.java 3.39KB
  66. net/sf/jxls/transformation/ShiftTransformation.java 2.97KB
  67. net/sf/jxls/transformation/Transformation.java 428B
  68. net/sf/jxls/transformation/TransformationType.java 648B
  69. net/sf/jxls/transformer/
  70. net/sf/jxls/transformer/BaseRowTransformer.java 2.6KB
  71. net/sf/jxls/transformer/CellTransformer.java 7.38KB
  72. net/sf/jxls/transformer/ChainTransformer.java 2.96KB
  73. net/sf/jxls/transformer/CollectionRowTransformer.java 9.04KB
  74. net/sf/jxls/transformer/Configuration.java 8.96KB
  75. net/sf/jxls/transformer/MergedRegion.java 1KB
  76. net/sf/jxls/transformer/Row.java 7.82KB
  77. net/sf/jxls/transformer/RowCollection.java 4.76KB
  78. net/sf/jxls/transformer/RowTransformer.java 621B
  79. net/sf/jxls/transformer/Sheet.java 3.39KB
  80. net/sf/jxls/transformer/SheetTransformer.java 15.38KB
  81. net/sf/jxls/transformer/SimpleRowTransformer.java 3.21KB
  82. net/sf/jxls/transformer/TagRowTransformer.java 1.29KB
  83. net/sf/jxls/transformer/Workbook.java 3.38KB
  84. net/sf/jxls/transformer/XLSTransformer.java 27.54KB
  85. net/sf/jxls/util/
  86. net/sf/jxls/util/FormulaUtil.java 1.91KB
  87. net/sf/jxls/util/GroupData.java 599B
  88. net/sf/jxls/util/ReportUtil.java 5.35KB
  89. net/sf/jxls/util/SheetHelper.java 3.08KB
  90. net/sf/jxls/util/TagBodyHelper.java 11.05KB
  91. 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
100+评论
captcha