Kaynağa Gözat

提供一个更基础的view

4.1.3.A
jueyue 9 yıl önce
ebeveyn
işleme
fd1dff6c28
10 değiştirilmiş dosya ile 186 ekleme ve 30 silme
  1. +18
    -11
      README.md
  2. +8
    -1
      easypoi-base/src/main/java/org/jeecgframework/poi/pdf/export/PdfExportServer.java
  3. +2
    -0
      easypoi-web/build.gradle
  4. +7
    -0
      easypoi-web/pom.xml
  5. +33
    -0
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/PDFTemplateConstants.java
  6. +1
    -7
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java
  7. +0
    -1
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/MapGraphExcelView.java
  8. +1
    -10
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/MiniAbstractExcelView.java
  9. +81
    -0
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/PDFTemplateView.java
  10. +35
    -0
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/PoiBaseView.java

+ 18
- 11
README.md Dosyayı Görüntüle

@@ -58,17 +58,17 @@ https://oss.sonatype.org/content/repositories/snapshots/
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-base</artifactId>
<version>2.1.6</version>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-web</artifactId>
<version>2.1.6</version>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>2.1.6</version>
<version>2.3.0</version>
</dependency>
```
@@ -173,7 +173,17 @@ word和sax读取的时候才使用,就不是必须的了,请手动引用,JSR303
--------------------------
版本修改
--------------------------
- 2.3.0 修复bug,推荐更新
- 提供的PDF基础的Excel导出支持
- 提供了Excel Charts的导出支持
- 升级了POI
- 提供了Word换行支持
- 图片提供统一缓存
- 增加Cell取值工具,自动分辨合并单元格和独立单元格
- 修复合并单元格,获取cell改为递归,之前判断有问题
- 修改了下,el表达式的==判断,给fe加上了样式自定义方法
- 修复if(),单字段的判断
- 修复其他一些bug
- 2.1.6 校验规则不向下兼容,升级请自行考虑
- 其实不想升的,不过有必要的bug要修复,所以就先生上来吧
- 升级交易为hibernate校验,hibernate的maven自己配置可选
@@ -364,17 +374,14 @@ EasyPoi导出实例
8.Excel导入校验,过滤不符合规则的数据,追加错误信息到Excel,提供常用的校验规则,已经通用的校验接口
```Java
/**
* Email校验
*/
@Excel(name = "Email", width = 25)
@ExcelVerify(isEmail = true, notNull = true)
private String email;
@Max(value = 15,message = "max 最大值不能超过15")
private int email;
/**
* 手机号校验
* 手机号
*/
@Excel(name = "Mobile", width = 20)
@ExcelVerify(isMobile = true, notNull = true)
@NotNull
private String mobile;
ExcelImportResult<ExcelVerifyEntity> result = ExcelImportUtil.importExcelVerify(new File(


+ 8
- 1
easypoi-base/src/main/java/org/jeecgframework/poi/pdf/export/PdfExportServer.java Dosyayı Görüntüle

@@ -25,6 +25,7 @@ import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.util.IOUtils;
import org.jeecgframework.poi.cache.ImageCache;
import org.jeecgframework.poi.excel.annotation.ExcelTarget;
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
@@ -95,7 +96,11 @@ public class PdfExportServer extends ExportBase {
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
} finally {
document.close();
try {
document.close();
} catch (Exception e) {
//可能之前已经关闭过了
}
}
return document;
}
@@ -129,6 +134,8 @@ public class PdfExportServer extends ExportBase {
LOGGER.error(e.getMessage(), e);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
} finally {
document.close();
}
return document;
}


+ 2
- 0
easypoi-web/build.gradle Dosyayı Görüntüle

@@ -4,6 +4,8 @@ dependencies {
compile group: 'org.springframework', name: 'spring-web', version:'3.1.1.RELEASE'
compile group: 'org.springframework', name: 'spring-webmvc', version:'3.1.1.RELEASE'
compile group: 'org.springframework', name: 'spring-core', version:'3.1.1.RELEASE'
compile group: 'org.springframework', name: 'spring-core', version:'3.1.1.RELEASE'
compile group: 'com.itextpdf', name: 'itextpdf', version:'5.5.6'
compile project(':easypoi-base')
compile(group: 'javax.servlet', name: 'servlet-api', version:'2.5') {
/* This dependency was originally in the Maven provided scope, but the project was not of type war.


+ 7
- 0
easypoi-web/pom.xml Dosyayı Görüntüle

@@ -28,6 +28,13 @@
<scope>provided</scope>
</dependency>
<!-- PDF -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-base</artifactId>


+ 33
- 0
easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/PDFTemplateConstants.java Dosyayı Görüntüle

@@ -0,0 +1,33 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jeecgframework.poi.excel.entity.vo;
public interface PDFTemplateConstants extends BasePOIConstants {
/**
* PDF
*/
public final static String PDF_TEMPLATE_VIEW = "pdfTemplateView";
/**
* Entity List
*/
public final static String ENTITY_LIST = "EntityList";
/**
* 数据列表
*/
public final static String DATA_LIST = "dataList";
}

+ 1
- 7
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java Dosyayı Görüntüle

@@ -25,7 +25,6 @@ import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.jeecgframework.poi.excel.entity.vo.TemplateWordConstants;
import org.jeecgframework.poi.word.WordExportUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.view.AbstractView;
/**
* Word模板视图
@@ -35,7 +34,7 @@ import org.springframework.web.servlet.view.AbstractView;
*/
@SuppressWarnings("unchecked")
@Controller(TemplateWordConstants.JEECG_TEMPLATE_WORD_VIEW)
public class JeecgTemplateWordView extends AbstractView {
public class JeecgTemplateWordView extends PoiBaseView {
private static final String CONTENT_TYPE = "application/msword";
@@ -43,11 +42,6 @@ public class JeecgTemplateWordView extends AbstractView {
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;
}
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
HttpServletResponse response) throws Exception {


+ 0
- 1
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/MapGraphExcelView.java Dosyayı Görüntüle

@@ -18,7 +18,6 @@ package org.jeecgframework.poi.excel.view;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


+ 1
- 10
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/MiniAbstractExcelView.java Dosyayı Görüntüle

@@ -15,16 +15,12 @@
*/
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 {
public abstract class MiniAbstractExcelView extends PoiBaseView {
private static final String CONTENT_TYPE = "application/vnd.ms-excel";
@@ -35,9 +31,4 @@ public abstract class MiniAbstractExcelView extends AbstractView {
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;
}
}

+ 81
- 0
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/PDFTemplateView.java Dosyayı Görüntüle

@@ -0,0 +1,81 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jeecgframework.poi.excel.view;
import java.io.ByteArrayOutputStream;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
import org.jeecgframework.poi.excel.entity.vo.PDFTemplateConstants;
import org.jeecgframework.poi.pdf.PdfExportUtil;
import org.jeecgframework.poi.pdf.entity.PdfExportParams;
import org.springframework.stereotype.Controller;
/**
* PDF 导出 View
* @author JueYue
* @date 2016年1月19日 上午10:43:02
*/
@Controller(PDFTemplateConstants.PDF_TEMPLATE_VIEW)
public class PDFTemplateView extends PoiBaseView {
public PDFTemplateView() {
setContentType("application/pdf");
}
@Override
protected boolean generatesDownloadContent() {
return true;
}
@Override
@SuppressWarnings("unchecked")
protected final void renderMergedOutputModel(Map<String, Object> model,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
String fileName = "临时文件";
ByteArrayOutputStream baos = createTemporaryOutputStream();
PdfExportParams entity = (PdfExportParams) model.get(PDFTemplateConstants.PARAMS);
Class<?> pojoClass = (Class<?>) model.get(PDFTemplateConstants.CLASS);
Collection<?> dataSet = (Collection<?>) model.get(PDFTemplateConstants.DATA_LIST);
List<ExcelExportEntity> entityList = (List<ExcelExportEntity>) model
.get(PDFTemplateConstants.ENTITY_LIST);
if (entityList == null) {
PdfExportUtil.exportPdf(entity, pojoClass, dataSet, baos);
} else {
PdfExportUtil.exportPdf(entity, entityList, (Collection<? extends Map<?, ?>>) dataSet,
baos);
}
String userFileName = (String) model.get(PDFTemplateConstants.FILE_NAME);
if (StringUtils.isNoneBlank(userFileName)) {
fileName = userFileName;
}
if (isIE(request)) {
fileName = java.net.URLEncoder.encode(fileName, "UTF8");
} else {
fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
}
response.setHeader("content-disposition", "attachment;filename=" + fileName + ".pdf");
writeToResponse(response, baos);
}
}

+ 35
- 0
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/PoiBaseView.java Dosyayı Görüntüle

@@ -0,0 +1,35 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jeecgframework.poi.excel.view;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.servlet.view.AbstractView;
/**
* 提供一些通用结构
*/
public abstract class PoiBaseView extends AbstractView {
protected boolean isIE(HttpServletRequest request) {
return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0
|| request.getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0
|| request.getHeader("USER-AGENT").toLowerCase().indexOf("edge") > 0) ? true
: false;
}
}

Yükleniyor…
İptal
Kaydet