Quellcode durchsuchen

拆分了基础注解,方便maven多工程的集成,弃用了AbstractExcelView改用自己的MiniAbstractExcelView已支持多Excel版本的导出

4.1.3.A
jueyue vor 10 Jahren
Ursprung
Commit
8bc9192aac
18 geänderte Dateien mit 193 neuen und 61 gelöschten Zeilen
  1. +36
    -0
      easypoi-annotation/.classpath
  2. +23
    -0
      easypoi-annotation/.project
  3. +3
    -0
      easypoi-annotation/.settings/org.eclipse.core.resources.prefs
  4. +5
    -0
      easypoi-annotation/.settings/org.eclipse.jdt.core.prefs
  5. +4
    -0
      easypoi-annotation/.settings/org.eclipse.m2e.core.prefs
  6. +11
    -0
      easypoi-annotation/pom.xml
  7. +0
    -0
      easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java
  8. +0
    -0
      easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelCollection.java
  9. +0
    -0
      easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelEntity.java
  10. +0
    -0
      easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelIgnore.java
  11. +0
    -0
      easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelTarget.java
  12. +0
    -0
      easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelVerify.java
  13. +5
    -0
      easypoi-base/pom.xml
  14. +26
    -19
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgMapExcelView.java
  15. +42
    -27
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java
  16. +2
    -13
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java
  17. +28
    -0
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/MiniAbstractExcelView.java
  18. +8
    -2
      pom.xml

+ 36
- 0
easypoi-annotation/.classpath Datei anzeigen

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<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 excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<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">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

+ 23
- 0
easypoi-annotation/.project Datei anzeigen

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>easypoi-annotation</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>

+ 3
- 0
easypoi-annotation/.settings/org.eclipse.core.resources.prefs Datei anzeigen

@@ -0,0 +1,3 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/test/java=UTF-8

+ 5
- 0
easypoi-annotation/.settings/org.eclipse.jdt.core.prefs Datei anzeigen

@@ -0,0 +1,5 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.6

+ 4
- 0
easypoi-annotation/.settings/org.eclipse.m2e.core.prefs Datei anzeigen

@@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

+ 11
- 0
easypoi-annotation/pom.xml Datei anzeigen

@@ -0,0 +1,11 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jeecgframework</groupId>
<artifactId>easypoi</artifactId>
<version>2.0.8-SNAPSHOT</version>
</parent>
<artifactId>easypoi-annotation</artifactId>
<description>基础注解类,解耦合</description>
</project>

easypoi-base/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java → easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java Datei anzeigen


easypoi-base/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelCollection.java → easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelCollection.java Datei anzeigen


easypoi-base/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelEntity.java → easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelEntity.java Datei anzeigen


easypoi-base/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelIgnore.java → easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelIgnore.java Datei anzeigen


easypoi-base/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelTarget.java → easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelTarget.java Datei anzeigen


easypoi-base/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelVerify.java → easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelVerify.java Datei anzeigen


+ 5
- 0
easypoi-base/pom.xml Datei anzeigen

@@ -47,5 +47,10 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.jeecgframework</groupId>
<artifactId>easypoi-annotation</artifactId>
</dependency>
</dependencies>
</project>

+ 26
- 19
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgMapExcelView.java Datei anzeigen

@@ -4,15 +4,16 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
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;
/**
* Map 对象接口
@@ -21,31 +22,37 @@ import org.springframework.web.servlet.view.document.AbstractExcelView;
* @date 2014年11月25日 下午3:26:32
*/
@SuppressWarnings("unchecked")
public class JeecgMapExcelView extends AbstractExcelView {
public class JeecgMapExcelView extends MiniAbstractExcelView {
public JeecgMapExcelView() {
super();
}
@Override
protected void buildExcelDocument(Map<String, Object> model, HSSFWorkbook hssfWorkbook,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) throws Exception {
String codedFileName = "临时文件.xls";
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String codedFileName = "临时文件";
Workbook workbook = ExcelExportUtil.exportExcel(
(ExportParams) model.get(MapExcelConstants.PARAMS),
(List<ExcelExportEntity>) model.get(MapExcelConstants.ENTITY_LIST),
(Collection<? extends Map<?, ?>>) model.get(MapExcelConstants.MAP_LIST));
if (model.containsKey(MapExcelConstants.FILE_NAME)) {
codedFileName = (String) model.get(MapExcelConstants.FILE_NAME) + ".xls";
codedFileName = (String) model.get(MapExcelConstants.FILE_NAME);
}
if (isIE(httpServletRequest)) {
if (workbook instanceof HSSFWorkbook) {
codedFileName += HSSF;
} else {
codedFileName += XSSF;
}
if (isIE(request)) {
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));
response.setHeader("content-disposition", "attachment;filename=" + codedFileName);
ServletOutputStream out = response.getOutputStream();
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;
}
}

+ 42
- 27
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java Datei anzeigen

@@ -4,55 +4,70 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
import org.jeecgframework.poi.excel.export.ExcelExportServer;
import org.springframework.web.servlet.view.document.AbstractExcelView;
/**
* @Author JueYue on 14-3-8. Excel 生成解析器,减少用户操作
*/
@SuppressWarnings("unchecked")
public class JeecgSingleExcelView extends AbstractExcelView {
public class JeecgSingleExcelView extends MiniAbstractExcelView {
public JeecgSingleExcelView() {
super();
}
@Override
protected void buildExcelDocument(Map<String, Object> model, HSSFWorkbook hssfWorkbook,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) throws Exception {
String codedFileName = "临时文件.xls";
if (model.containsKey(NormalExcelConstants.FILE_NAME)) {
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=" + codedFileName);
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String codedFileName = "临时文件";
Workbook workbook = null;
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));
if (list.size() == 0) {
throw new RuntimeException("MAP_LIST IS NULL");
}
workbook = ExcelExportUtil.exportExcel(
(ExportParams) list.get(0).get(NormalExcelConstants.PARAMS), (Class<?>) list.get(0)
.get(NormalExcelConstants.CLASS),
(Collection<?>) list.get(0).get(NormalExcelConstants.DATA_LIST));
for (int i = 1; i < list.size(); i++) {
new ExcelExportServer().createSheet(workbook,
(ExportParams) list.get(i).get(NormalExcelConstants.PARAMS), (Class<?>) list
.get(i).get(NormalExcelConstants.CLASS),
(Collection<?>) list.get(i).get(NormalExcelConstants.DATA_LIST));
}
} else {
new ExcelExportServer().createSheet(hssfWorkbook,
workbook = ExcelExportUtil.exportExcel(
(ExportParams) model.get(NormalExcelConstants.PARAMS),
(Class<?>) model.get(NormalExcelConstants.CLASS),
(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;
if (model.containsKey(NormalExcelConstants.FILE_NAME)) {
codedFileName = (String) model.get(NormalExcelConstants.FILE_NAME);
}
if (workbook instanceof HSSFWorkbook) {
codedFileName += HSSF;
} else {
codedFileName += XSSF;
}
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);
ServletOutputStream out = response.getOutputStream();
workbook.write(out);
out.flush();
}
}

+ 2
- 13
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java Datei anzeigen

@@ -13,7 +13,6 @@ import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.vo.TemplateExcelConstants;
import org.springframework.web.servlet.view.AbstractView;
/**
* Excel模板视图
@@ -22,20 +21,10 @@ import org.springframework.web.servlet.view.AbstractView;
* @date 2014年6月30日 下午9:15:49
*/
@SuppressWarnings("unchecked")
public class JeecgTemplateExcelView extends AbstractView {
private static final String CONTENT_TYPE = "application/vnd.ms-excel";
private static final String HSSF = ".xls";
private static final String XSSF = ".xlsx";
public class JeecgTemplateExcelView extends MiniAbstractExcelView {
public JeecgTemplateExcelView() {
setContentType(CONTENT_TYPE);
}
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;
super();
}
@Override


+ 28
- 0
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/MiniAbstractExcelView.java Datei anzeigen

@@ -0,0 +1,28 @@
package org.jeecgframework.poi.excel.view;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.servlet.view.AbstractView;
/**
* 基础抽象Excel View
* @author JueYue
* @date 2015年2月28日 下午1:41:05
*/
public abstract class MiniAbstractExcelView extends AbstractView {
private static final String CONTENT_TYPE = "application/vnd.ms-excel";
protected static final String HSSF = ".xls";
protected static final String XSSF = ".xlsx";
public MiniAbstractExcelView() {
setContentType(CONTENT_TYPE);
}
protected 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;
}
}

+ 8
- 2
pom.xml Datei anzeigen

@@ -10,6 +10,7 @@
<module>easypoi-base</module>
<module>easypoi-web</module>
<module>easypoi-test</module>
<module>easypoi-annotation</module>
</modules>
<url>www.jeecg.org</url>
@@ -128,6 +129,11 @@
<artifactId>easypoi-base</artifactId>
<version>${sub.version}</version>
</dependency>
<dependency>
<groupId>org.jeecgframework</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>${sub.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
@@ -164,11 +170,11 @@
<distributionManagement>
<repository>
<id>postaop-common-release</id>
<url>http://192.168.1.99:8081/nexus/content/repositories/postaop-common-release/</url>
<url>http://172.16.100.99:8081/nexus/content/repositories/postaop-common-release/</url>
</repository>
<snapshotRepository>
<id>postaop-common-snapshot</id>
<url>http://192.168.1.99:8081/nexus/content/repositories/postaop-common-snapshot/</url>
<url>http://172.16.100.99:8081/nexus/content/repositories/postaop-common-snapshot/</url>
</snapshotRepository>
</distributionManagement>

Laden…
Abbrechen
Speichern