Ver código fonte

升级到了2.0.6-SNAPSHOT,增加了索引项,提供了map导出项

4.1.3.A
jueyue 10 anos atrás
pai
commit
97d33394cc
35 arquivos alterados com 780 adições e 81 exclusões
  1. +1
    -1
      deploy.bat
  2. +3
    -3
      easypoi-base/.classpath
  3. +1
    -1
      easypoi-base/pom.xml
  4. +15
    -0
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java
  5. +12
    -0
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/ExportParams.java
  6. +2
    -2
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelBaseEntity.java
  7. +37
    -4
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java
  8. +2
    -0
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/vo/PoiBaseConstants.java
  9. +85
    -6
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java
  10. +25
    -2
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java
  11. +25
    -12
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java
  12. +3
    -8
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java
  13. +3
    -0
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/CellValueServer.java
  14. +10
    -2
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/ExcelImportServer.java
  15. +4
    -4
      easypoi-test/.classpath
  16. +1
    -1
      easypoi-test/pom.xml
  17. +146
    -0
      easypoi-test/src/main/java/org/jeecgframework/poi/entity/MsgClient.java
  18. +57
    -0
      easypoi-test/src/main/java/org/jeecgframework/poi/entity/MsgClientGroup.java
  19. +7
    -3
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/ExcelImportUtilTest.java
  20. BIN
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/doc/exportTemp.xls
  21. +51
    -0
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportForMap.java
  22. +108
    -0
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportTemplateTest.java
  23. +4
    -3
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilIdTest.java
  24. +12
    -3
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilTest.java
  25. +11
    -0
      easypoi-test/src/main/resources/log4j.properties
  26. +4
    -4
      easypoi-web/.classpath
  27. +6
    -0
      easypoi-web/.project
  28. +1
    -2
      easypoi-web/pom.xml
  29. +22
    -0
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/MapExcelConstants.java
  30. +56
    -0
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgMapExcelView.java
  31. +19
    -6
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java
  32. +14
    -2
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java
  33. +17
    -3
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java
  34. +1
    -1
      package.bat
  35. +15
    -8
      pom.xml

+ 1
- 1
deploy.bat Ver arquivo

@@ -1 +1 @@
cmd /k mvn clean deploy -DskipTest
cmd /k mvn clean deploy -D skipTest

+ 3
- 3
easypoi-base/.classpath Ver arquivo

@@ -6,8 +6,9 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
@@ -16,9 +17,8 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>


+ 1
- 1
easypoi-base/pom.xml Ver arquivo

@@ -4,7 +4,7 @@
<parent>
<groupId>org.jeecgframework</groupId>
<artifactId>easypoi</artifactId>
<version>2.0.2</version>
<version>2.0.6-SNAPSHOT</version>
</parent>
<artifactId>easypoi-base</artifactId>
<dependencies>


+ 15
- 0
easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java Ver arquivo

@@ -8,6 +8,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
import org.jeecgframework.poi.excel.export.ExcelExportServer;
import org.jeecgframework.poi.excel.export.template.ExcelExportOfTemplateUtil;
@@ -54,6 +55,20 @@ public final class ExcelExportUtil {
new ExcelExportServer().createSheet(workbook, entity, pojoClass, dataSet);
return workbook;
}
/**
* @param entity
* 表格标题属性
* @param pojoClass
* Excel对象Class
* @param dataSet
* Excel对象数据List
*/
public static HSSFWorkbook exportExcel(ExportParams entity,
List<ExcelExportEntity> entityList, Collection<? extends Map<?,?>> dataSet) {
HSSFWorkbook workbook = new HSSFWorkbook();
new ExcelExportServer().createSheetForMap(workbook, entity, entityList, dataSet);
return workbook;
}
/**
* 导出文件通过模板解析


+ 12
- 0
easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/ExportParams.java Ver arquivo

@@ -49,6 +49,10 @@ public class ExportParams extends ExcelBaseParams {
* 过滤的属性
*/
private String[] exclusions;
/**
* 是否添加需要需要
*/
private boolean addIndex;
/**
* 表头颜色
*/
@@ -122,4 +126,12 @@ public class ExportParams extends ExcelBaseParams {
public void setSecondTitleHeight(short secondTitleHeight) {
this.secondTitleHeight = secondTitleHeight;
}
public boolean isAddIndex() {
return addIndex;
}
public void setAddIndex(boolean addIndex) {
this.addIndex = addIndex;
}
}

+ 2
- 2
easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelBaseEntity.java Ver arquivo

@@ -11,11 +11,11 @@ public class ExcelBaseEntity {
/**
* 对应name
*/
private String name;
protected String name;
/**
* 对应type
*/
private int type;
private int type = 1;
/**
* 数据库格式
*/


+ 37
- 4
easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java Ver arquivo

@@ -10,16 +10,41 @@ import java.util.List;
*/
public class ExcelExportEntity extends ExcelBaseEntity {
private int width;
private int height;
public ExcelExportEntity() {
}
public ExcelExportEntity(String name) {
super.name = name;
}
public ExcelExportEntity(String name, Object key) {
super.name = name;
this.key = key;
}
public ExcelExportEntity(String name, Object key, int width) {
super.name = name;
this.width = width;
this.key = key;
}
/**
* 如果是MAP导出,这个是map的key
*/
private Object key;
private int width = 10;
private int height = 10;
/**
* 图片的类型,1是文件,2是数据库
*/
private int exportImageType;
private int exportImageType = 0;
/**
* 排序顺序
*/
private int orderNum;
private int orderNum = 0;
/**
* 是否支持换行
*/
@@ -123,4 +148,12 @@ public class ExcelExportEntity extends ExcelBaseEntity {
this.mergeVertical = mergeVertical;
}
public Object getKey() {
return key;
}
public void setKey(Object key) {
this.key = key;
}
}

+ 2
- 0
easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/vo/PoiBaseConstants.java Ver arquivo

@@ -11,5 +11,7 @@ public interface PoiBaseConstants {
public static String SET = "set";
public static String IS = "is";
public static String IS_ADD_INDEX = "isAddIndex";
}

+ 85
- 6
easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java Ver arquivo

@@ -22,6 +22,7 @@ import org.apache.poi.ss.util.CellRangeAddress;
import org.jeecgframework.poi.excel.annotation.ExcelTarget;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
import org.jeecgframework.poi.excel.entity.vo.PoiBaseConstants;
import org.jeecgframework.poi.excel.export.base.ExcelExportBase;
import org.jeecgframework.poi.exception.excel.ExcelExportException;
import org.jeecgframework.poi.exception.excel.enums.ExcelExportEnum;
@@ -36,8 +37,9 @@ import org.slf4j.LoggerFactory;
* @date 2014年6月17日 下午5:30:54
*/
public class ExcelExportServer extends ExcelExportBase {
private final static Logger logger = LoggerFactory.getLogger(ExcelExportServer.class);
private final static Logger logger = LoggerFactory
.getLogger(ExcelExportServer.class);
private static final short cellFormat = HSSFDataFormat
.getBuiltinFormat("TEXT");
@@ -47,8 +49,8 @@ public class ExcelExportServer extends ExcelExportBase {
public void createSheet(HSSFWorkbook workbook, ExportParams entity,
Class<?> pojoClass, Collection<?> dataSet) {
if(logger.isDebugEnabled()){
logger.debug("Excel export start ,class is {}",pojoClass);
if (logger.isDebugEnabled()) {
logger.debug("Excel export start ,class is {}", pojoClass);
}
if (workbook == null || entity == null || pojoClass == null
|| dataSet == null) {
@@ -71,6 +73,9 @@ public class ExcelExportServer extends ExcelExportBase {
Map<String, HSSFCellStyle> styles = createStyles(workbook);
Drawing patriarch = sheet.createDrawingPatriarch();
List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>();
if (entity.isAddIndex()) {
excelParams.add(indexExcelEntity());
}
// 得到所有字段
Field fileds[] = POIPublicUtil.getClassFields(pojoClass);
ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class);
@@ -83,7 +88,7 @@ public class ExcelExportServer extends ExcelExportBase {
int titleHeight = index;
setCellWith(excelParams, sheet);
short rowHeight = getRowHeight(excelParams);
setCurrentIndex(1);
Iterator<?> its = dataSet.iterator();
List<Object> tempList = new ArrayList<Object>();
while (its.hasNext()) {
@@ -107,12 +112,21 @@ public class ExcelExportServer extends ExcelExportBase {
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage(),e.fillInStackTrace());
throw new ExcelExportException(ExcelExportEnum.EXPORT_ERROR,
e.getCause());
}
}
private ExcelExportEntity indexExcelEntity() {
ExcelExportEntity entity = new ExcelExportEntity();
entity.setOrderNum(0);
entity.setName("序号");
entity.setWidth(10);
entity.setFormat(PoiBaseConstants.IS_ADD_INDEX);
return entity;
}
private int createHeaderAndTitle(ExportParams entity, Sheet sheet,
HSSFWorkbook workbook, List<ExcelExportEntity> excelParams) {
int rows = 0, feildWidth = getFieldWidth(excelParams);
@@ -298,4 +312,69 @@ public class ExcelExportServer extends ExcelExportBase {
return map.get("two");
}
public void createSheetForMap(HSSFWorkbook workbook, ExportParams entity,
List<ExcelExportEntity> entityList,
Collection<? extends Map<?, ?>> dataSet) {
if (workbook == null || entity == null || entityList == null
|| dataSet == null) {
throw new ExcelExportException(ExcelExportEnum.PARAMETER_ERROR);
}
Sheet sheet = null;
try {
sheet = workbook.createSheet(entity.getSheetName());
} catch (Exception e) {
// 重复遍历,出现了重名现象,创建非指定的名称Sheet
sheet = workbook.createSheet();
}
try {
dataHanlder = entity.getDataHanlder();
if (dataHanlder != null) {
needHanlderList = Arrays.asList(dataHanlder
.getNeedHandlerFields());
}
// 创建表格属性
Map<String, HSSFCellStyle> styles = createStyles(workbook);
Drawing patriarch = sheet.createDrawingPatriarch();
List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>();
if (entity.isAddIndex()) {
excelParams.add(indexExcelEntity());
}
excelParams.addAll(entityList);
sortAllParams(excelParams);
int index = createHeaderAndTitle(entity, sheet, workbook,
excelParams);
int titleHeight = index;
setCellWith(excelParams, sheet);
short rowHeight = getRowHeight(excelParams);
setCurrentIndex(1);
Iterator<?> its = dataSet.iterator();
List<Object> tempList = new ArrayList<Object>();
while (its.hasNext()) {
Object t = its.next();
index += createCells(patriarch, index, t, excelParams, sheet,
workbook, styles, rowHeight);
tempList.add(t);
if (index >= MAX_NUM)
break;
}
mergeCells(sheet, excelParams, titleHeight);
its = dataSet.iterator();
for (int i = 0, le = tempList.size(); i < le; i++) {
its.next();
its.remove();
}
// 发现还有剩余list 继续循环创建Sheet
if (dataSet.size() > 0) {
createSheetForMap(workbook, entity, entityList, dataSet);
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage(),e.fillInStackTrace());
throw new ExcelExportException(ExcelExportEnum.EXPORT_ERROR,
e.getCause());
}
}
}

+ 25
- 2
easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java Ver arquivo

@@ -28,6 +28,7 @@ import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
import org.jeecgframework.poi.excel.entity.params.MergeEntity;
import org.jeecgframework.poi.excel.entity.vo.PoiBaseConstants;
import org.jeecgframework.poi.util.POIPublicUtil;
/**
@@ -38,6 +39,8 @@ import org.jeecgframework.poi.util.POIPublicUtil;
*/
public abstract class ExcelExportBase extends ExportBase {
private int currentIndex = 0;
/**
* 合并单元格
*
@@ -213,7 +216,9 @@ public abstract class ExcelExportBase extends ExportBase {
Row row = sheet.createRow(index);
row.setHeight(rowHeight);
int maxHeight = 1, cellNum = 0;
for (int k = 0, paramSize = excelParams.size(); k < paramSize; k++) {
int indexKey = createIndexCell(row, styles, index, excelParams.get(0));
cellNum += indexKey;
for (int k = indexKey, paramSize = excelParams.size(); k < paramSize; k++) {
entity = excelParams.get(k);
if (entity.getList() != null) {
Collection<?> list = (Collection<?>) entity.getMethod().invoke(
@@ -246,7 +251,7 @@ public abstract class ExcelExportBase extends ExportBase {
}
// 合并需要合并的单元格
cellNum = 0;
for (int k = 0, paramSize = excelParams.size(); k < paramSize; k++) {
for (int k = indexKey, paramSize = excelParams.size(); k < paramSize; k++) {
entity = excelParams.get(k);
if (entity.getList() != null) {
cellNum += entity.getList().size();
@@ -260,6 +265,20 @@ public abstract class ExcelExportBase extends ExportBase {
}
private int createIndexCell(Row row, Map<String, HSSFCellStyle> styles,
int index, ExcelExportEntity excelExportEntity) {
if (excelExportEntity.getName().equals("序号")
&& excelExportEntity.getFormat().equals(
PoiBaseConstants.IS_ADD_INDEX)) {
createStringCell(row, 0, currentIndex + "",
index % 2 == 0 ? getStyles(styles, false, false)
: getStyles(styles, true, false), null);
currentIndex = currentIndex + 1;
return 1;
}
return 0;
}
public CellStyle getStyles(Map<String, HSSFCellStyle> styles, boolean b,
boolean wrap) {
return null;
@@ -417,4 +436,8 @@ public abstract class ExcelExportBase extends ExportBase {
return length;
}
public void setCurrentIndex(int currentIndex) {
this.currentIndex = currentIndex;
}
}

+ 25
- 12
easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java Ver arquivo

@@ -9,6 +9,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.jeecgframework.poi.excel.annotation.Excel;
@@ -26,7 +27,7 @@ import org.jeecgframework.poi.util.POIPublicUtil;
* @date 2014年8月9日 下午11:01:32
*/
public class ExportBase {
protected IExcelDataHandler dataHanlder;
protected List<String> needHanlderList;
@@ -54,7 +55,11 @@ public class ExportBase {
targetId)) {
continue;
}
if (POIPublicUtil.isCollection(field.getType())) {
// 首先判断Excel 可能一下特殊数据用户回自定义处理
if (field.getAnnotation(Excel.class) != null) {
excelParams.add(createExcelExportEntity(field, targetId,
pojoClass, getMethods));
} else if (POIPublicUtil.isCollection(field.getType())) {
ExcelCollection excel = field
.getAnnotation(ExcelCollection.class);
ParameterizedType pt = (ParameterizedType) field
@@ -73,9 +78,6 @@ public class ExportBase {
pojoClass));
excelEntity.setList(list);
excelParams.add(excelEntity);
} else if (POIPublicUtil.isJavaClass(field)) {
excelParams.add(createExcelExportEntity(field, targetId,
pojoClass, getMethods));
} else {
List<Method> newMethods = new ArrayList<Method>();
if (getMethods != null) {
@@ -108,7 +110,12 @@ public class ExportBase {
throws Exception {
Excel excel = field.getAnnotation(Excel.class);
ExcelExportEntity excelEntity = new ExcelExportEntity();
excelEntity.setType(excel.type());
try {
excelEntity.setType(excel.type());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
getExcelField(targetId, field, excelEntity, excel, pojoClass);
if (getMethods != null) {
List<Method> newMethods = new ArrayList<Method>();
@@ -203,8 +210,10 @@ public class ExportBase {
String fieldname = field.getName();
excelEntity.setMethod(POIPublicUtil.getMethod(fieldname, pojoClass));
}
/**
* 根据注解获取行高
*
* @param excelParams
* @return
*/
@@ -223,7 +232,6 @@ public class ExportBase {
}
return (short) (maxHeight * 50);
}
/**
* 对字段根据用户设置排序
@@ -236,7 +244,7 @@ public class ExportBase {
}
}
}
/**
* 获取填如这个cell的值,提供一些附加功能
*
@@ -247,9 +255,14 @@ public class ExportBase {
*/
public Object getCellValue(ExcelExportEntity entity, Object obj)
throws Exception {
Object value = entity.getMethods() != null ? getFieldBySomeMethod(
entity.getMethods(), obj) : entity.getMethod().invoke(obj,
new Object[] {});
Object value;
if (obj instanceof Map) {
return ((Map<?, ?>) obj).get(entity.getKey());
} else {
value = entity.getMethods() != null ? getFieldBySomeMethod(
entity.getMethods(), obj) : entity.getMethod().invoke(obj,
new Object[] {});
}
if (needHanlderList != null
&& needHanlderList.contains(entity.getName())) {
value = dataHanlder.exportHandler(obj, entity.getName(), value);
@@ -290,7 +303,7 @@ public class ExportBase {
}
return value;
}
/**
* 多个反射获取值
*


+ 3
- 8
easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java Ver arquivo

@@ -32,6 +32,7 @@ import org.jeecgframework.poi.util.POIPublicUtil;
* @version 1.0
*/
public final class ExcelExportOfTemplateUtil extends ExcelExportBase {
public Workbook createExcleByTemplate(TemplateExportParams params,
Class<?> pojoClass, Collection<?> dataSet, Map<String, Object> map) {
@@ -44,19 +45,13 @@ public final class ExcelExportOfTemplateUtil extends ExcelExportBase {
// step 2. 判断模板的Excel类型,解析模板
try {
wb = getCloneWorkBook(params);
// step 3. 删除其他的sheet
for (int i = wb.getNumberOfSheets() - 1; i >= 0; i--) {
if (i != params.getSheetNum()) {
wb.removeSheetAt(i);
}
}
if (StringUtils.isNotEmpty(params.getSheetName())) {
wb.setSheetName(0, params.getSheetName());
}
// step 4. 解析模板
// step 3. 解析模板
parseTemplate(wb.getSheetAt(0), map);
if (dataSet != null) {
// step 5. 正常的数据填充
// step 4. 正常的数据填充
dataHanlder = params.getDataHanlder();
if (dataHanlder != null) {
needHanlderList = Arrays.asList(dataHanlder


+ 3
- 0
easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/CellValueServer.java Ver arquivo

@@ -141,6 +141,9 @@ public class CellValueServer {
*/
private Object getCellValue(String xclass, Cell cell,
ExcelImportEntity entity) {
if(cell == null){
return "";
}
Object result = null;
// 日期格式比较特殊,和cell格式不一致
if (xclass.equals("class java.util.Date")) {


+ 10
- 2
easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/ExcelImportServer.java Ver arquivo

@@ -94,6 +94,9 @@ public class ExcelImportServer {
}
Map<String, PictureData> pictures;
for (int i = 0; i < params.getSheetNum(); i++) {
if(logger.isDebugEnabled()){
logger.debug(" start to read excel by is ,startTime is {}", new Date().getTime());
}
if (isXSSFWorkbook) {
pictures = POIPublicUtil.getSheetPictrues07(
(XSSFSheet) book.getSheetAt(i), (XSSFWorkbook) book);
@@ -101,8 +104,14 @@ public class ExcelImportServer {
pictures = POIPublicUtil.getSheetPictrues03(
(HSSFSheet) book.getSheetAt(i), (HSSFWorkbook) book);
}
if(logger.isDebugEnabled()){
logger.debug(" end to read excel by is ,endTime is {}", new Date().getTime());
}
result.addAll(importExcel(result, book.getSheetAt(i), pojoClass,
params, pictures));
if(logger.isDebugEnabled()){
logger.debug(" end to read excel list by pos ,endTime is {}", new Date().getTime());
}
}
if (params.isNeedSave()) {
saveThisExcel(params, pojoClass, isXSSFWorkbook, book);
@@ -141,8 +150,7 @@ public class ExcelImportServer {
if (params.getSaveUrl().equals("upload/excelUpload")) {
url = pojoClass.getName().split("\\.")[pojoClass.getName().split(
"\\.").length - 1];
return params.getSaveUrl() + "/"
+ url.substring(0, url.lastIndexOf("Entity"));
return params.getSaveUrl() + "/" + url;
}
return params.getSaveUrl();
}


+ 4
- 4
easypoi-test/.classpath Ver arquivo

@@ -11,19 +11,19 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>


+ 1
- 1
easypoi-test/pom.xml Ver arquivo

@@ -4,7 +4,7 @@
<parent>
<groupId>org.jeecgframework</groupId>
<artifactId>easypoi</artifactId>
<version>2.0.2</version>
<version>2.0.6-SNAPSHOT</version>
</parent>
<artifactId>easypoi-test</artifactId>
<dependencies>


+ 146
- 0
easypoi-test/src/main/java/org/jeecgframework/poi/entity/MsgClient.java Ver arquivo

@@ -0,0 +1,146 @@
package org.jeecgframework.poi.entity;
import java.util.Date;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelEntity;
/**
* @Title: Entity
* @Description: 通讯录
* @author JueYue
* @date 2014-09-22 16:03:32
* @version V1.0
*
*/
@SuppressWarnings("serial")
public class MsgClient implements java.io.Serializable {
/** id */
private java.lang.String id;
// 电话号码(主键)
@Excel(name = "电话号码")
private String clientPhone = null;
// 客户姓名
@Excel(name = "姓名")
private String clientName = null;
// 所属分组
@ExcelEntity
private MsgClientGroup group = null;
// 备注
@Excel(name = "备注")
private String remark = null;
// 生日
@Excel(name = "出生日期")
private Date birthday = null;
// 创建人
private String createBy = null;
/**
* 方法: 取得java.lang.String
*
* @return: java.lang.String id
*/
public java.lang.String getId() {
return this.id;
}
/**
* 方法: 设置java.lang.String
*
* @param: java.lang.String id
*/
public void setId(java.lang.String id) {
this.id = id;
}
/**
* 方法: 取得java.lang.String
*
* @return: java.lang.String 电话号码
*/
public java.lang.String getClientPhone() {
return this.clientPhone;
}
/**
* 方法: 设置java.lang.String
*
* @param: java.lang.String 电话号码
*/
public void setClientPhone(java.lang.String clientPhone) {
this.clientPhone = clientPhone;
}
public MsgClientGroup getGroup() {
return group;
}
public void setGroup(MsgClientGroup group) {
this.group = group;
}
/**
* 方法: 取得java.lang.String
*
* @return: java.lang.String 客户姓名
*/
public java.lang.String getClientName() {
return this.clientName;
}
/**
* 方法: 设置java.lang.String
*
* @param: java.lang.String 客户姓名
*/
public void setClientName(java.lang.String clientName) {
this.clientName = clientName;
}
/**
* 方法: 取得java.lang.String
*
* @return: java.lang.String 备注
*/
public java.lang.String getRemark() {
return this.remark;
}
/**
* 方法: 设置java.lang.String
*
* @param remark
*
* @param: java.lang.String 备注
*/
public void setRemark(java.lang.String remark) {
this.remark = remark;
}
/**
* 方法: 取得java.util.Date
*
* @return: java.util.Date 生日
*/
public java.util.Date getBirthday() {
return this.birthday;
}
/**
* 方法: 设置java.util.Date
*
* @param: java.util.Date 生日
*/
public void setBirthday(java.util.Date birthday) {
this.birthday = birthday;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
}

+ 57
- 0
easypoi-test/src/main/java/org/jeecgframework/poi/entity/MsgClientGroup.java Ver arquivo

@@ -0,0 +1,57 @@
package org.jeecgframework.poi.entity;
import java.io.Serializable;
import java.util.List;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* 客户分组表
*
* @author yjl
*
*/
public class MsgClientGroup implements Serializable{
/**
*
*/
private static final long serialVersionUID = 6946265640897464878L;
// 组名
@Excel(name ="分组")
private String groupName = null;
/**
* 创建人
*/
private String createBy;
// 一个组下 可能存在N多客户
//private List<MsgClientMine> clients = null;
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
/*@org.codehaus.jackson.annotate.JsonIgnore
@OneToMany(cascade = CascadeType.REMOVE,fetch = FetchType.LAZY,mappedBy = "group")
public List<MsgClientMine> getClients() {
return clients;
}
public void setClients(List<MsgClientMine> clients) {
this.clients = clients;
}*/
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
}

+ 7
- 3
easypoi-test/src/main/java/org/jeecgframework/poi/excel/ExcelImportUtilTest.java Ver arquivo

@@ -4,9 +4,11 @@ import static org.junit.Assert.*;
import java.io.File;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.jeecgframework.poi.entity.CourseEntity;
import org.jeecgframework.poi.entity.MsgClient;
import org.jeecgframework.poi.entity.StudentEntity;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.junit.Test;
@@ -18,11 +20,13 @@ public class ExcelImportUtilTest {
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(2);
//params.setSheetNum(9);
params.setNeedSave(true);
long start = new Date().getTime();
List<CourseEntity> list = ExcelImportUtil.importExcel(new File(
"d:/tt.xls"), CourseEntity.class, params);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName());
}
System.out.println(list.size() + "-----"
+ (new Date().getTime() - start));
}
}

BIN
easypoi-test/src/main/java/org/jeecgframework/poi/excel/doc/exportTemp.xls Ver arquivo


+ 51
- 0
easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportForMap.java Ver arquivo

@@ -0,0 +1,51 @@
package org.jeecgframework.poi.excel.test;
import static org.junit.Assert.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.jeecgframework.poi.entity.TeacherEntity;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
public class ExcelExportForMap {
@Test
public void test() {
try {
List<ExcelExportEntity> entity = new ArrayList<ExcelExportEntity>();
entity.add(new ExcelExportEntity("姓名", "name"));
entity.add(new ExcelExportEntity("性别", "sex"));
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map;
for (int i = 0; i < 10; i++) {
map = new HashMap<String, String>();
map.put("name", "1" + i);
map.put("sex", "2" + i);
list.add(map);
}
HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams(
"测试", "测试"), entity, list);
FileOutputStream fos = new FileOutputStream("d:/tt.xls");
workbook.write(fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

+ 108
- 0
easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportTemplateTest.java Ver arquivo

@@ -0,0 +1,108 @@
package org.jeecgframework.poi.excel.test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.entity.CourseEntity;
import org.jeecgframework.poi.entity.StudentEntity;
import org.jeecgframework.poi.entity.TeacherEntity;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
import org.junit.Before;
import org.junit.Test;
public class ExcelExportTemplateTest {
List<CourseEntity> list = new ArrayList<CourseEntity>();
CourseEntity courseEntity;
@Before
public void testBefore() {
courseEntity = new CourseEntity();
courseEntity.setId("1131");
courseEntity.setName("小白");
TeacherEntity teacherEntity = new TeacherEntity();
teacherEntity.setId("12131231");
teacherEntity.setName("你们");
courseEntity.setTeacher(teacherEntity);
teacherEntity = new TeacherEntity();
teacherEntity.setId("121312314312421131");
teacherEntity.setName("老王");
courseEntity.setShuxueteacher(teacherEntity);
StudentEntity studentEntity = new StudentEntity();
studentEntity.setId("11231");
studentEntity.setName("撒旦法司法局");
studentEntity.setBirthday(new Date());
studentEntity.setSex(1);
List<StudentEntity> studentList = new ArrayList<StudentEntity>();
studentList.add(studentEntity);
studentList.add(studentEntity);
courseEntity.setStudents(studentList);
for (int i = 0; i < 3; i++) {
list.add(courseEntity);
}
}
//@Test
public void one () throws Exception{
TemplateExportParams params = new TemplateExportParams();
params.setHeadingRows(2);
params.setHeadingStartRow(2);
Map<String,Object> map = new HashMap<String, Object>();
map.put("year", "2013");
map.put("sunCourses", list.size());
Map<String,Object> obj = new HashMap<String, Object>();
map.put("obj", obj);
obj.put("name", list.size());
params.setTemplateUrl("org/jeecgframework/poi/excel/doc/exportTemp.xls");
Workbook book = ExcelExportUtil.exportExcel(params, CourseEntity.class, list,
map);
File savefile = new File("d:/");
if (!savefile.exists()) {
savefile.mkdirs();
}
FileOutputStream fos = new FileOutputStream("d:/exportTemp.xls");
book.write(fos);
fos.close();
}
@Test
public void two () throws Exception{
TemplateExportParams params = new TemplateExportParams();
Map<String,Object> map = new HashMap<String, Object>();
map.put("month", 10);
Map<String,Object> temp;
for(int i = 1;i<8;i++){
temp = new HashMap<String, Object>();
temp.put("per", i*10);
temp.put("mon", i*1000);
temp.put("summon", i*10000);
map.put("i"+i, temp);
}
params.setTemplateUrl("org/jeecgframework/poi/excel/doc/exportTemp.xls");
params.setSheetNum(1);
Workbook book = ExcelExportUtil.exportExcel(params, CourseEntity.class, list,
map);
File savefile = new File("d:/");
if (!savefile.exists()) {
savefile.mkdirs();
}
FileOutputStream fos = new FileOutputStream("d:/exportTemp2.xls");
book.write(fos);
fos.close();
}
}

+ 4
- 3
easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilIdTest.java Ver arquivo

@@ -59,7 +59,6 @@ public class ExcelExportUtilIdTest {
telist.add(teacherEntity);
}
}
/**
* 单行表头导出测试
@@ -68,8 +67,10 @@ public class ExcelExportUtilIdTest {
*/
@Test
public void testExportExcel() throws Exception {
HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams(
"2412312", "测试", "测试"), TeacherEntity.class, telist);
ExportParams params = new ExportParams("2412312", "测试", "测试");
params.setAddIndex(true);
HSSFWorkbook workbook = ExcelExportUtil.exportExcel(params,
TeacherEntity.class, telist);
FileOutputStream fos = new FileOutputStream("d:/tt.xls");
workbook.write(fos);
fos.close();


+ 12
- 3
easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilTest.java Ver arquivo

@@ -62,7 +62,7 @@ public class ExcelExportUtilTest {
*
* @throws Exception
*/
@Test
//@Test
public void testExportExcel() throws Exception {
Date start = new Date();
HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams(
@@ -123,9 +123,10 @@ public class ExcelExportUtilTest {
*
* @throws Exception
*/
//@Test
@Test
public void oneHundredThousandRowTest() throws Exception {
for (int i = 0; i < 250000; i++) {
for (int i = 0; i < 250; i++) {
list.add(courseEntity);
}
Date start = new Date();
@@ -139,6 +140,14 @@ public class ExcelExportUtilTest {
FileOutputStream fos = new FileOutputStream("d:/tt.xls");
workbook.write(fos);
fos.close();
savefile = new File("d:/1");
if (!savefile.exists()) {
savefile.setWritable(true, false);
savefile.mkdirs();
}
fos = new FileOutputStream("d:/1/tt3.xls");
workbook.write(fos);
fos.close();
}
}

+ 11
- 0
easypoi-test/src/main/resources/log4j.properties Ver arquivo

@@ -0,0 +1,11 @@
log4j.rootLogger=debug,A1,R
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.Target=System.out
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%c]%m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=/home/logs/easypoi.info
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n

+ 4
- 4
easypoi-web/.classpath Ver arquivo

@@ -11,19 +11,19 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>


+ 6
- 0
easypoi-web/.project Ver arquivo

@@ -15,8 +15,14 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.springframework.ide.eclipse.core.springbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.springframework.ide.eclipse.core.springnature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>


+ 1
- 2
easypoi-web/pom.xml Ver arquivo

@@ -4,10 +4,9 @@
<parent>
<groupId>org.jeecgframework</groupId>
<artifactId>easypoi</artifactId>
<version>2.0.2</version>
<version>2.0.6-SNAPSHOT</version>
</parent>
<artifactId>easypoi-web</artifactId>
<dependencies>
<!--spring -->
<dependency>


+ 22
- 0
easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/MapExcelConstants.java Ver arquivo

@@ -0,0 +1,22 @@
package org.jeecgframework.poi.excel.entity.vo;
/**
* 正常导出Excel
* @Author JueYue on 14-3-8.
* 静态常量
*/
public interface MapExcelConstants extends BasePOIConstants {
/**
* 单Sheet导出
*/
public final static String JEECG_MAP_EXCEL_VIEW = "jeecgMapExcelView";
/**
* Entity List
*/
public final static String ENTITY_LIST = "data";
/**
* 数据列表
*/
public final static String MAP_LIST = "mapList";
}

+ 56
- 0
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgMapExcelView.java Ver arquivo

@@ -0,0 +1,56 @@
package org.jeecgframework.poi.excel.view;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
import org.jeecgframework.poi.excel.entity.vo.MapExcelConstants;
import org.jeecgframework.poi.excel.export.ExcelExportServer;
import org.springframework.web.servlet.view.document.AbstractExcelView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* Map 对象接口
*
* @author JueYue
* @date 2014年11月25日 下午3:26:32
*/
@SuppressWarnings("unchecked")
public class JeecgMapExcelView extends AbstractExcelView {
@Override
protected void buildExcelDocument(Map<String, Object> model,
HSSFWorkbook hssfWorkbook, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) throws Exception {
String codedFileName = "临时文件.xls";
if (model.containsKey(MapExcelConstants.FILE_NAME)) {
codedFileName = (String) model.get(MapExcelConstants.FILE_NAME)
+ ".xls";
}
if (isIE(httpServletRequest)) {
codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8");
} else {
codedFileName = new String(codedFileName.getBytes("UTF-8"),
"ISO-8859-1");
}
httpServletResponse.setHeader("content-disposition",
"attachment;filename=" + codedFileName);
new ExcelExportServer().createSheetForMap(hssfWorkbook,
(ExportParams) model.get(MapExcelConstants.PARAMS),
(List<ExcelExportEntity>) model
.get(MapExcelConstants.ENTITY_LIST),
(Collection<? extends Map<?, ?>>) model
.get(MapExcelConstants.MAP_LIST));
}
public boolean isIE(HttpServletRequest request) {
return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request
.getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true
: false;
}
}

+ 19
- 6
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java Ver arquivo

@@ -28,17 +28,24 @@ public class JeecgSingleExcelView extends AbstractExcelView {
codedFileName = (String) model.get(NormalExcelConstants.FILE_NAME)
+ ".xls";
}
if (isIE(httpServletRequest)) {
codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8");
} else {
codedFileName = new String(codedFileName.getBytes("UTF-8"),
"ISO-8859-1");
}
httpServletResponse.setHeader("content-disposition",
"attachment;filename="
+ new String(codedFileName.getBytes(), "iso8859-1"));
"attachment;filename="+codedFileName);
if (model.containsKey(NormalExcelConstants.MAP_LIST)) {
List<Map<String, Object>> list = (List<Map<String, Object>>) model
.get(NormalExcelConstants.MAP_LIST);
for (Map<String, Object> map : list) {
new ExcelExportServer().createSheet(hssfWorkbook,
(ExportParams) map.get(NormalExcelConstants.PARAMS),
(Class<?>) map.get(NormalExcelConstants.CLASS),
(Collection<?>) map.get(NormalExcelConstants.DATA_LIST));
new ExcelExportServer()
.createSheet(hssfWorkbook, (ExportParams) map
.get(NormalExcelConstants.PARAMS),
(Class<?>) map.get(NormalExcelConstants.CLASS),
(Collection<?>) map
.get(NormalExcelConstants.DATA_LIST));
}
} else {
new ExcelExportServer().createSheet(hssfWorkbook,
@@ -47,4 +54,10 @@ public class JeecgSingleExcelView extends AbstractExcelView {
(Collection<?>) model.get(NormalExcelConstants.DATA_LIST));
}
}
public boolean isIE(HttpServletRequest request) {
return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request
.getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true
: false;
}
}

+ 14
- 2
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java Ver arquivo

@@ -38,8 +38,14 @@ public class JeecgTemplateExcelView extends AbstractView {
codedFileName = (String) model.get(NormalExcelConstants.FILE_NAME)
+ ".xls";
}
response.setHeader("content-disposition", "attachment;filename="
+ new String(codedFileName.getBytes(), "iso8859-1"));
if (isIE(request)) {
codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8");
} else {
codedFileName = new String(codedFileName.getBytes("UTF-8"),
"ISO-8859-1");
}
response.setHeader("content-disposition",
"attachment;filename="+codedFileName);
Workbook workbook = ExcelExportUtil.exportExcel(
(TemplateExportParams)model.get(TemplateExcelConstants.PARAMS),
(Class<?>) model.get(TemplateExcelConstants.CLASS),
@@ -49,4 +55,10 @@ public class JeecgTemplateExcelView extends AbstractView {
workbook.write(out);
out.flush();
}
public boolean isIE(HttpServletRequest request) {
return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request
.getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true
: false;
}
}

+ 17
- 3
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java Ver arquivo

@@ -35,12 +35,26 @@ public class JeecgTemplateWordView extends AbstractView {
codedFileName = (String) model.get(TemplateWordConstants.FILE_NAME)
+ ".docx";
}
if (isIE(request)) {
codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8");
} else {
codedFileName = new String(codedFileName.getBytes("UTF-8"),
"ISO-8859-1");
}
response.setHeader("content-disposition", "attachment;filename="
+ new String(codedFileName.getBytes(), "iso8859-1"));
XWPFDocument document = WordExportUtil.exportWord07((String)model.get(TemplateWordConstants.URL),
(Map<String, Object>)model.get(TemplateWordConstants.MAP_DATA));
+ codedFileName);
XWPFDocument document = WordExportUtil
.exportWord07((String) model.get(TemplateWordConstants.URL),
(Map<String, Object>) model
.get(TemplateWordConstants.MAP_DATA));
ServletOutputStream out = response.getOutputStream();
document.write(out);
out.flush();
}
public boolean isIE(HttpServletRequest request) {
return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request
.getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true
: false;
}
}

+ 1
- 1
package.bat Ver arquivo

@@ -1 +1 @@
cmd /k mvn package
cmd /k mvn package -DskipTest

+ 15
- 8
pom.xml Ver arquivo

@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jeecgframework</groupId>
<artifactId>easypoi</artifactId>
<version>2.0.2</version>
<version>2.0.6-SNAPSHOT</version>
<packaging>pom</packaging>
<name>easypoi</name>
<modules>
@@ -11,18 +11,19 @@
<module>easypoi-web</module>
<module>easypoi-test</module>
</modules>
<url>www.jeecg.org</url>
<description> office 工具类 基于 poi</description>
<developers>
<developer>
<name>JueYue</name>
<email>qrb.jueyue@gmail.com</email>
</developer>
</developers>
<properties>
<sub.version>2.0.6-SNAPSHOT</sub.version>
<poi-ooxml-schemas.version>3.9</poi-ooxml-schemas.version>
<poi-ooxml.version>3.9</poi-ooxml.version>
<poi-scratchpad.version>3.9</poi-scratchpad.version>
@@ -109,7 +110,7 @@
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!-- test -->
<dependency>
<groupId>junit</groupId>
@@ -117,16 +118,17 @@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- 模块版本 -->
<dependency>
<groupId>org.jeecgframework</groupId>
<artifactId>easypoi-base</artifactId>
<version>2.0.2</version>
<version>${sub.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 内部 maven 地址 -->
<distributionManagement>
<repository>
<id>postaop-pay-platform-release</id>
@@ -134,10 +136,15 @@
</repository>
<snapshotRepository>
<id>postaop-pay-platform-snapshot</id>
<url>http://192.168.0.99:8081/nexus/content/repositoriespostaop-common-snapshot/</url>
<url>http://192.168.0.99:8081/nexus/content/repositories/postaop-common-snapshot/</url>
</snapshotRepository>
</distributionManagement>
<scm>
<connection>scm:svn:https://192.168.0.99:8443/svn/postaop-platform/qdcrm/trunk/</connection>
<developerConnection>scm:svn:https://192.168.0.99:8443/svn/postaop-platform/qdcrm/trunk/</developerConnection>
</scm>
<build>
<plugins>
<plugin>


Carregando…
Cancelar
Salvar