diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/word/WordExportUtil.java b/easypoi-base/src/main/java/org/jeecgframework/poi/word/WordExportUtil.java index cb6982e..2f04c8e 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/word/WordExportUtil.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/word/WordExportUtil.java @@ -7,22 +7,39 @@ import org.jeecgframework.poi.word.parse.ParseWord07; /** * Word使用模板导出工具类 + * * @author JueYue * @date 2013-11-16 * @version 1.0 */ public class WordExportUtil { - + /** * 解析Word2007版本 - *@Author JueYue - *@date 2013-11-16 - *@param url 模板地址 - *@param map 解析数据源 - *@return + * + * @param url + * 模板地址 + * @param map + * 解析数据源 + * @return */ - public static XWPFDocument exportWord07(String url,Map map) throws Exception{ + public static XWPFDocument exportWord07(String url, Map map) + throws Exception { return new ParseWord07().parseWord(url, map); } + /** + * 解析Word2007版本 + * + * @param XWPFDocument + * 模板 + * @param map + * 解析数据源 + * @return + */ + public static void exportWord07(XWPFDocument document, + Map map) throws Exception { + new ParseWord07().parseWord(document, map); + } + } diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/word/parse/ParseWord07.java b/easypoi-base/src/main/java/org/jeecgframework/poi/word/parse/ParseWord07.java index 3e62fc9..10bb4be 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/word/parse/ParseWord07.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/word/parse/ParseWord07.java @@ -40,6 +40,16 @@ public class ParseWord07 { parseWordSetValue(doc, map); return doc; } + /** + * 按用户模板导出 + * @param document + * @param map + * @throws Exception + */ + public void parseWord(XWPFDocument document, Map map) throws Exception { + parseWordSetValue((JeecgXWPFDocument)document, map); + } + private void parseWordSetValue(JeecgXWPFDocument doc, Map map) throws Exception { @@ -276,7 +286,4 @@ public class ParseWord07 { } - - - } diff --git a/easypoi-base/target/classes/META-INF/maven/org.jeecgframework/easypoi-base/pom.properties b/easypoi-base/target/classes/META-INF/maven/org.jeecgframework/easypoi-base/pom.properties index 65e7c01..0114540 100644 --- a/easypoi-base/target/classes/META-INF/maven/org.jeecgframework/easypoi-base/pom.properties +++ b/easypoi-base/target/classes/META-INF/maven/org.jeecgframework/easypoi-base/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven Integration for Eclipse -#Thu Jul 24 23:06:08 CST 2014 +#Thu Jul 24 23:11:13 CST 2014 version=2.0.1 groupId=org.jeecgframework m2e.projectName=easypoi-base diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/NormalPOIConstants.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/NormalExcelConstants.java similarity index 82% rename from easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/NormalPOIConstants.java rename to easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/NormalExcelConstants.java index 036e640..6ac0058 100644 --- a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/NormalPOIConstants.java +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/NormalExcelConstants.java @@ -5,7 +5,7 @@ package org.jeecgframework.poi.excel.entity.vo; * @Author JueYue on 14-3-8. * 静态常量 */ -public interface NormalPOIConstants extends BasePOIConstants { +public interface NormalExcelConstants extends BasePOIConstants { /** * 单Sheet导出 */ diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/TemplatePOIConstants.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/TemplateExcelConstants.java similarity index 83% rename from easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/TemplatePOIConstants.java rename to easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/TemplateExcelConstants.java index 548b7da..82d9609 100644 --- a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/TemplatePOIConstants.java +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/TemplateExcelConstants.java @@ -4,7 +4,7 @@ package org.jeecgframework.poi.excel.entity.vo; * @author JueYue * @date 2014年6月30日 下午9:26:52 */ -public interface TemplatePOIConstants extends BasePOIConstants { +public interface TemplateExcelConstants extends BasePOIConstants { /** * 模板导出 */ diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/TemplateWordConstants.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/TemplateWordConstants.java new file mode 100644 index 0000000..c21bf67 --- /dev/null +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/TemplateWordConstants.java @@ -0,0 +1,21 @@ +package org.jeecgframework.poi.excel.entity.vo; +/** + * Word 导出模板常量 + * @author JueYue + * @date 2014年7月24日 下午11:26:46 + */ +public interface TemplateWordConstants extends BasePOIConstants { + /** + * 模板导出 + */ + public final static String JEECG_TEMPLATE_WORD_VIEW = "jeecgTemplateWordView"; + /** + * 数据列表 + */ + public final static String URL = "url"; + /** + * 模板参数 + */ + public final static String MAP_DATA = "map"; + +} diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java index 667b5a4..07a7674 100644 --- a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java @@ -2,7 +2,7 @@ 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.vo.NormalPOIConstants; +import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; import org.jeecgframework.poi.excel.export.ExcelExportServer; import org.springframework.web.servlet.view.document.AbstractExcelView; @@ -24,27 +24,27 @@ public class JeecgSingleExcelView extends AbstractExcelView { HSSFWorkbook hssfWorkbook, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { String codedFileName = "临时文件.xls"; - if (model.containsKey(NormalPOIConstants.FILE_NAME)) { - codedFileName = (String) model.get(NormalPOIConstants.FILE_NAME) + if (model.containsKey(NormalExcelConstants.FILE_NAME)) { + codedFileName = (String) model.get(NormalExcelConstants.FILE_NAME) + ".xls"; } httpServletResponse.setHeader("content-disposition", "attachment;filename=" + new String(codedFileName.getBytes(), "iso8859-1")); - if (model.containsKey(NormalPOIConstants.MAP_LIST)) { + if (model.containsKey(NormalExcelConstants.MAP_LIST)) { List> list = (List>) model - .get(NormalPOIConstants.MAP_LIST); + .get(NormalExcelConstants.MAP_LIST); for (Map map : list) { new ExcelExportServer().createSheet(hssfWorkbook, - (ExportParams) map.get(NormalPOIConstants.PARAMS), - (Class) map.get(NormalPOIConstants.CLASS), - (Collection) map.get(NormalPOIConstants.DATA_LIST)); + (ExportParams) map.get(NormalExcelConstants.PARAMS), + (Class) map.get(NormalExcelConstants.CLASS), + (Collection) map.get(NormalExcelConstants.DATA_LIST)); } } else { new ExcelExportServer().createSheet(hssfWorkbook, - (ExportParams) model.get(NormalPOIConstants.PARAMS), - (Class) model.get(NormalPOIConstants.CLASS), - (Collection) model.get(NormalPOIConstants.DATA_LIST)); + (ExportParams) model.get(NormalExcelConstants.PARAMS), + (Class) model.get(NormalExcelConstants.CLASS), + (Collection) model.get(NormalExcelConstants.DATA_LIST)); } } } diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java index 0e60006..87a483d 100644 --- a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java @@ -10,8 +10,8 @@ import javax.servlet.http.HttpServletResponse; import org.apache.poi.ss.usermodel.Workbook; import org.jeecgframework.poi.excel.ExcelExportUtil; import org.jeecgframework.poi.excel.entity.TemplateExportParams; -import org.jeecgframework.poi.excel.entity.vo.NormalPOIConstants; -import org.jeecgframework.poi.excel.entity.vo.TemplatePOIConstants; +import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.vo.TemplateExcelConstants; import org.springframework.web.servlet.view.AbstractView; /** @@ -34,17 +34,17 @@ public class JeecgTemplateExcelView extends AbstractView { HttpServletRequest request, HttpServletResponse response) throws Exception { String codedFileName = "临时文件.xls"; - if (model.containsKey(NormalPOIConstants.FILE_NAME)) { - codedFileName = (String) model.get(NormalPOIConstants.FILE_NAME) + if (model.containsKey(NormalExcelConstants.FILE_NAME)) { + codedFileName = (String) model.get(NormalExcelConstants.FILE_NAME) + ".xls"; } response.setHeader("content-disposition", "attachment;filename=" + new String(codedFileName.getBytes(), "iso8859-1")); Workbook workbook = ExcelExportUtil.exportExcel( - (TemplateExportParams)model.get(TemplatePOIConstants.PARAMS), - (Class) model.get(TemplatePOIConstants.CLASS), - (List)model.get(TemplatePOIConstants.LIST_DATA), - (Map)model.get(TemplatePOIConstants.MAP_DATA)); + (TemplateExportParams)model.get(TemplateExcelConstants.PARAMS), + (Class) model.get(TemplateExcelConstants.CLASS), + (List)model.get(TemplateExcelConstants.LIST_DATA), + (Map)model.get(TemplateExcelConstants.MAP_DATA)); ServletOutputStream out = response.getOutputStream(); workbook.write(out); out.flush(); diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java new file mode 100644 index 0000000..9ed36b9 --- /dev/null +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java @@ -0,0 +1,46 @@ +package org.jeecgframework.poi.excel.view; + +import java.util.Map; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.jeecgframework.poi.excel.entity.vo.TemplateWordConstants; +import org.jeecgframework.poi.word.WordExportUtil; +import org.springframework.web.servlet.view.AbstractView; + +/** + * 模板视图 + * + * @author JueYue + * @date 2014年6月30日 下午9:15:49 + */ +@SuppressWarnings("unchecked") +public class JeecgTemplateWordView extends AbstractView { + + private static final String CONTENT_TYPE = "application/msword"; + + public JeecgTemplateWordView() { + setContentType(CONTENT_TYPE); + } + + @Override + protected void renderMergedOutputModel(Map model, + HttpServletRequest request, HttpServletResponse response) + throws Exception { + String codedFileName = "临时文件.docx"; + if (model.containsKey(TemplateWordConstants.FILE_NAME)) { + codedFileName = (String) model.get(TemplateWordConstants.FILE_NAME) + + ".docx"; + } + response.setHeader("content-disposition", "attachment;filename=" + + new String(codedFileName.getBytes(), "iso8859-1")); + XWPFDocument document = WordExportUtil.exportWord07((String)model.get(TemplateWordConstants.URL), + (Map)model.get(TemplateWordConstants.MAP_DATA)); + ServletOutputStream out = response.getOutputStream(); + document.write(out); + out.flush(); + } +} diff --git a/easypoi-web/target/classes/META-INF/maven/org.jeecgframework/easypoi-web/pom.properties b/easypoi-web/target/classes/META-INF/maven/org.jeecgframework/easypoi-web/pom.properties index 4f4e736..0a259a5 100644 --- a/easypoi-web/target/classes/META-INF/maven/org.jeecgframework/easypoi-web/pom.properties +++ b/easypoi-web/target/classes/META-INF/maven/org.jeecgframework/easypoi-web/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven Integration for Eclipse -#Thu Jul 24 22:34:52 CST 2014 +#Thu Jul 24 23:30:51 CST 2014 version=2.0.1 groupId=org.jeecgframework m2e.projectName=easypoi-web