Преглед на файлове

新增了导出 版本的选择,03和07

4.1.3.A
jueyue преди 10 години
родител
ревизия
faa63e9bd7
променени са 12 файла, в които са добавени 213 реда и са изтрити 97 реда
  1. +30
    -11
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java
  2. +15
    -0
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/ExportParams.java
  3. +20
    -4
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/vo/PoiBaseConstants.java
  4. +51
    -42
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java
  5. +34
    -19
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java
  6. +11
    -8
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/MyExcelExport.java
  7. +38
    -4
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportForMap.java
  8. +2
    -1
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilDataHandlerTest.java
  9. +2
    -1
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilIdTest.java
  10. +3
    -4
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilTest.java
  11. +2
    -1
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgMapExcelView.java
  12. +5
    -2
      easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java

+ 30
- 11
easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java Целия файл

@@ -6,9 +6,11 @@ import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
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.entity.vo.PoiBaseConstants;
import org.jeecgframework.poi.excel.export.ExcelExportServer;
import org.jeecgframework.poi.excel.export.template.ExcelExportOfTemplateUtil;
@@ -29,14 +31,20 @@ public final class ExcelExportUtil {
* @param dataSet
* Excel对象数据List
*/
public static HSSFWorkbook exportExcel(ExportParams entity, Class<?> pojoClass,
Collection<?> dataSet) {
HSSFWorkbook workbook = new HSSFWorkbook();
new ExcelExportServer().createSheet(workbook, entity, pojoClass, dataSet);
public static Workbook exportExcel(ExportParams entity, Class<?> pojoClass,
Collection<?> dataSet) {
Workbook workbook;
if (entity.getType().equals(PoiBaseConstants.HSSF)) {
workbook = new HSSFWorkbook();
} else {
workbook = new XSSFWorkbook();
}
new ExcelExportServer().createSheet(workbook, entity, pojoClass, dataSet, entity.getType());
return workbook;
}
/**
* 根据Map创建对应的Excel
* @param entity
* 表格标题属性
* @param pojoClass
@@ -44,10 +52,16 @@ public final class ExcelExportUtil {
* @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);
public static Workbook exportExcel(ExportParams entity, List<ExcelExportEntity> entityList,
Collection<? extends Map<?, ?>> dataSet) {
Workbook workbook;
if (entity.getType().equals(PoiBaseConstants.HSSF)) {
workbook = new HSSFWorkbook();
} else {
workbook = new XSSFWorkbook();
}
new ExcelExportServer().createSheetForMap(workbook, entity, entityList, dataSet,
entity.getType());
return workbook;
}
@@ -59,12 +73,17 @@ public final class ExcelExportUtil {
* Collection 数据
* @return
*/
public static HSSFWorkbook exportExcel(List<Map<String, Object>> list) {
HSSFWorkbook workbook = new HSSFWorkbook();
public static Workbook exportExcel(List<Map<String, Object>> list, String type) {
Workbook workbook;
if (type.equals(PoiBaseConstants.HSSF)) {
workbook = new HSSFWorkbook();
} else {
workbook = new XSSFWorkbook();
}
ExcelExportServer server = new ExcelExportServer();
for (Map<String, Object> map : list) {
server.createSheet(workbook, (ExportParams) map.get("title"),
(Class<?>) map.get("entity"), (Collection<?>) map.get("data"));
(Class<?>) map.get("entity"), (Collection<?>) map.get("data"), type);
}
return workbook;
}


+ 15
- 0
easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/ExportParams.java Целия файл

@@ -1,6 +1,7 @@
package org.jeecgframework.poi.excel.entity;
import org.apache.poi.hssf.util.HSSFColor;
import org.jeecgframework.poi.excel.entity.vo.PoiBaseConstants;
/**
* Excel 导出参数
@@ -49,9 +50,15 @@ public class ExportParams extends ExcelBaseParams {
* 属性说明行的颜色 例如:HSSFColor.SKY_BLUE.index 默认
*/
private short headerColor = HSSFColor.SKY_BLUE.index;
/**
* Excel 导出版本
*/
private String type = PoiBaseConstants.HSSF;
public ExportParams() {
}
public ExportParams(String title, String sheetName) {
this.title = title;
this.sheetName = sheetName;
@@ -134,4 +141,12 @@ public class ExportParams extends ExcelBaseParams {
public void setTitleHeight(short titleHeight) {
this.titleHeight = titleHeight;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}

+ 20
- 4
easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/vo/PoiBaseConstants.java Целия файл

@@ -5,13 +5,29 @@ package org.jeecgframework.poi.excel.entity.vo;
* Created by jue on 14-4-21.
*/
public interface PoiBaseConstants {
/**
* 字段属性对应方法
*/
public static String GET = "get";
/**
* 字段属性对应方法
*/
public static String SET = "set";
/**
* 字段属性对应方法
*/
public static String IS = "is";
/**
* 是否增加属性列
*/
public static String IS_ADD_INDEX = "isAddIndex";
/**
* 03版本Excel
*/
public static String HSSF = "HSSF";
/**
* 07版本Excel
*/
public static String XSSF = "XSSF";
}

+ 51
- 42
easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java Целия файл

@@ -9,15 +9,13 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.BuiltinFormats;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.jeecgframework.poi.excel.annotation.ExcelTarget;
import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -40,12 +38,12 @@ public class ExcelExportServer extends ExcelExportBase {
private final static Logger logger = LoggerFactory.getLogger(ExcelExportServer.class);
private static final short cellFormat = HSSFDataFormat.getBuiltinFormat("TEXT");
private static final short cellFormat = (short) BuiltinFormats.getBuiltinFormat("TEXT");
// 最大行数,超过自动多Sheet
private final int MAX_NUM = 60000;
private int MAX_NUM = 60000;
private int createHeaderAndTitle(ExportParams entity, Sheet sheet, HSSFWorkbook workbook,
private int createHeaderAndTitle(ExportParams entity, Sheet sheet, Workbook workbook,
List<ExcelExportEntity> excelParams) {
int rows = 0, feildWidth = getFieldWidth(excelParams);
if (entity.getTitle() != null) {
@@ -64,8 +62,7 @@ public class ExcelExportServer extends ExcelExportBase {
* @param workbook
* @param feildWidth
*/
public int createHeaderRow(ExportParams entity, Sheet sheet, HSSFWorkbook workbook,
int feildWidth) {
public int createHeaderRow(ExportParams entity, Sheet sheet, Workbook workbook, int feildWidth) {
Row row = sheet.createRow(0);
row.setHeight(entity.getTitleHeight());
createStringCell(row, 0, entity.getTitle(), getHeaderStyle(workbook, entity), null);
@@ -73,8 +70,8 @@ public class ExcelExportServer extends ExcelExportBase {
if (entity.getSecondTitle() != null) {
row = sheet.createRow(1);
row.setHeight(entity.getSecondTitleHeight());
HSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
CellStyle style = workbook.createCellStyle();
style.setAlignment(CellStyle.ALIGN_RIGHT);
createStringCell(row, 0, entity.getSecondTitle(), style, null);
sheet.addMergedRegion(new CellRangeAddress(1, 1, 0, feildWidth));
return 2;
@@ -82,14 +79,19 @@ public class ExcelExportServer extends ExcelExportBase {
return 1;
}
public void createSheet(HSSFWorkbook workbook, ExportParams entity, Class<?> pojoClass,
Collection<?> dataSet) {
public void createSheet(Workbook workbook, ExportParams entity, Class<?> pojoClass,
Collection<?> dataSet, String type) {
if (logger.isDebugEnabled()) {
logger.debug("Excel export start ,class is {}", pojoClass);
logger.debug("Excel version is {}", type.equals(PoiBaseConstants.HSSF) ? "03" : "07");
}
if (workbook == null || entity == null || pojoClass == null || dataSet == null) {
throw new ExcelExportException(ExcelExportEnum.PARAMETER_ERROR);
}
if (type.equals(PoiBaseConstants.XSSF)) {
MAX_NUM = 1000000;
}
super.type = type;
Sheet sheet = null;
try {
sheet = workbook.createSheet(entity.getSheetName());
@@ -103,7 +105,7 @@ public class ExcelExportServer extends ExcelExportBase {
needHanlderList = Arrays.asList(dataHanlder.getNeedHandlerFields());
}
// 创建表格属性
Map<String, HSSFCellStyle> styles = createStyles(workbook);
Map<String, CellStyle> styles = createStyles(workbook);
Drawing patriarch = sheet.createDrawingPatriarch();
List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>();
if (entity.isAddIndex()) {
@@ -139,7 +141,7 @@ public class ExcelExportServer extends ExcelExportBase {
}
// 发现还有剩余list 继续循环创建Sheet
if (dataSet.size() > 0) {
createSheet(workbook, entity, pojoClass, dataSet);
createSheet(workbook, entity, pojoClass, dataSet, type);
}
} catch (Exception e) {
@@ -148,12 +150,19 @@ public class ExcelExportServer extends ExcelExportBase {
}
}
public void createSheetForMap(HSSFWorkbook workbook, ExportParams entity,
public void createSheetForMap(Workbook workbook, ExportParams entity,
List<ExcelExportEntity> entityList,
Collection<? extends Map<?, ?>> dataSet) {
Collection<? extends Map<?, ?>> dataSet, String type) {
if (logger.isDebugEnabled()) {
logger.debug("Excel version is {}", type.equals(PoiBaseConstants.HSSF) ? "03" : "07");
}
if (workbook == null || entity == null || entityList == null || dataSet == null) {
throw new ExcelExportException(ExcelExportEnum.PARAMETER_ERROR);
}
if (type.equals(PoiBaseConstants.XSSF)) {
MAX_NUM = 1000000;
}
super.type = type;
Sheet sheet = null;
try {
sheet = workbook.createSheet(entity.getSheetName());
@@ -167,7 +176,7 @@ public class ExcelExportServer extends ExcelExportBase {
needHanlderList = Arrays.asList(dataHanlder.getNeedHandlerFields());
}
// 创建表格属性
Map<String, HSSFCellStyle> styles = createStyles(workbook);
Map<String, CellStyle> styles = createStyles(workbook);
Drawing patriarch = sheet.createDrawingPatriarch();
List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>();
if (entity.isAddIndex()) {
@@ -199,7 +208,7 @@ public class ExcelExportServer extends ExcelExportBase {
}
// 发现还有剩余list 继续循环创建Sheet
if (dataSet.size() > 0) {
createSheetForMap(workbook, entity, entityList, dataSet);
createSheetForMap(workbook, entity, entityList, dataSet, type);
}
} catch (Exception e) {
@@ -209,8 +218,8 @@ public class ExcelExportServer extends ExcelExportBase {
}
}
private Map<String, HSSFCellStyle> createStyles(HSSFWorkbook workbook) {
Map<String, HSSFCellStyle> map = new HashMap<String, HSSFCellStyle>();
private Map<String, CellStyle> createStyles(Workbook workbook) {
Map<String, CellStyle> map = new HashMap<String, CellStyle>();
map.put("one", getOneStyle(workbook, false));
map.put("oneWrap", getOneStyle(workbook, true));
map.put("two", getTwoStyle(workbook, false));
@@ -224,7 +233,7 @@ public class ExcelExportServer extends ExcelExportBase {
* @param title
* @param index
*/
private int createTitleRow(ExportParams title, Sheet sheet, HSSFWorkbook workbook, int index,
private int createTitleRow(ExportParams title, Sheet sheet, Workbook workbook, int index,
List<ExcelExportEntity> excelParams) {
Row row = sheet.createRow(index);
int rows = getRowNums(excelParams);
@@ -264,25 +273,25 @@ public class ExcelExportServer extends ExcelExportBase {
* @param workbook
* @return
*/
public HSSFCellStyle getHeaderStyle(HSSFWorkbook workbook, ExportParams entity) {
HSSFCellStyle titleStyle = workbook.createCellStyle();
public CellStyle getHeaderStyle(Workbook workbook, ExportParams entity) {
CellStyle titleStyle = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontHeightInPoints((short) 24);
titleStyle.setFont(font);
titleStyle.setFillForegroundColor(entity.getColor());
titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
titleStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
titleStyle.setAlignment(CellStyle.ALIGN_CENTER);
titleStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
return titleStyle;
}
public HSSFCellStyle getOneStyle(HSSFWorkbook workbook, boolean isWarp) {
HSSFCellStyle style = workbook.createCellStyle();
public CellStyle getOneStyle(Workbook workbook, boolean isWarp) {
CellStyle style = workbook.createCellStyle();
style.setBorderLeft((short) 1); // 左边框
style.setBorderRight((short) 1); // 右边框
style.setBorderBottom((short) 1);
style.setBorderTop((short) 1);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
style.setDataFormat(cellFormat);
if (isWarp) {
style.setWrapText(true);
@@ -305,7 +314,7 @@ public class ExcelExportServer extends ExcelExportBase {
return 1;
}
public CellStyle getStyles(Map<String, HSSFCellStyle> map, boolean needOne, boolean isWrap) {
public CellStyle getStyles(Map<String, CellStyle> map, boolean needOne, boolean isWrap) {
if (needOne && isWrap) {
return map.get("oneWrap");
}
@@ -324,26 +333,26 @@ public class ExcelExportServer extends ExcelExportBase {
* @param workbook
* @return
*/
public HSSFCellStyle getTitleStyle(HSSFWorkbook workbook, ExportParams entity) {
HSSFCellStyle titleStyle = workbook.createCellStyle();
public CellStyle getTitleStyle(Workbook workbook, ExportParams entity) {
CellStyle titleStyle = workbook.createCellStyle();
titleStyle.setFillForegroundColor(entity.getHeaderColor()); // 填充的背景颜色
titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
titleStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); // 填充图案
titleStyle.setAlignment(CellStyle.ALIGN_CENTER);
titleStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
titleStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); // 填充图案
titleStyle.setWrapText(true);
return titleStyle;
}
public HSSFCellStyle getTwoStyle(HSSFWorkbook workbook, boolean isWarp) {
HSSFCellStyle style = workbook.createCellStyle();
public CellStyle getTwoStyle(Workbook workbook, boolean isWarp) {
CellStyle style = workbook.createCellStyle();
style.setBorderLeft((short) 1); // 左边框
style.setBorderRight((short) 1); // 右边框
style.setBorderBottom((short) 1);
style.setBorderTop((short) 1);
style.setFillForegroundColor(HSSFColor.LIGHT_TURQUOISE.index); // 填充的背景颜色
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); // 填充图案
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setFillForegroundColor((short) 41); // 填充的背景颜色
style.setFillPattern(CellStyle.SOLID_FOREGROUND); // 填充图案
style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
style.setDataFormat(cellFormat);
if (isWarp) {
style.setWrapText(true);


+ 34
- 19
easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java Целия файл

@@ -14,18 +14,19 @@ import java.util.Set;
import javax.imageio.ImageIO;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
import org.jeecgframework.poi.excel.entity.params.MergeEntity;
import org.jeecgframework.poi.excel.entity.vo.PoiBaseConstants;
@@ -39,7 +40,9 @@ import org.jeecgframework.poi.util.POIPublicUtil;
*/
public abstract class ExcelExportBase extends ExportBase {
private int currentIndex = 0;
private int currentIndex = 0;
protected String type = PoiBaseConstants.HSSF;
private boolean checkIsEqualByCellContents(MergeEntity mergeEntity, String text, Cell cell,
int[] delys, int rowNum) {
@@ -69,7 +72,7 @@ public abstract class ExcelExportBase extends ExportBase {
*/
public int createCells(Drawing patriarch, int index, Object t,
List<ExcelExportEntity> excelParams, Sheet sheet, Workbook workbook,
Map<String, HSSFCellStyle> styles, short rowHeight) throws Exception {
Map<String, CellStyle> styles, short rowHeight) throws Exception {
ExcelExportEntity entity;
Row row = sheet.createRow(index);
row.setHeight(rowHeight);
@@ -128,29 +131,37 @@ public abstract class ExcelExportBase extends ExportBase {
* @param entity
* @param row
* @param i
* @param string
* @param imagePath
* @param obj
* @throws Exception
*/
public void createImageCell(Drawing patriarch, ExcelExportEntity entity, Row row, int i,
String string, Object obj) throws Exception {
String imagePath, Object obj) throws Exception {
row.setHeight((short) (50 * entity.getHeight()));
row.createCell(i);
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) i, row.getRowNum(),
(short) (i + 1), row.getRowNum() + 1);
if (StringUtils.isEmpty(string)) {
ClientAnchor anchor;
if (type.equals(PoiBaseConstants.HSSF)) {
anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) i, row.getRowNum(), (short) (i + 1),
row.getRowNum() + 1);
} else {
anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) i, row.getRowNum(), (short) (i + 1),
row.getRowNum() + 1);
}
if (StringUtils.isEmpty(imagePath)) {
return;
}
if (entity.getExportImageType() == 1) {
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
BufferedImage bufferImg;
try {
String path = POIPublicUtil.getWebRootPath(string);
String path = POIPublicUtil.getWebRootPath(imagePath);
path = path.replace("WEB-INF/classes/", "");
path = path.replace("file:/", "");
bufferImg = ImageIO.read(new File(path));
ImageIO.write(bufferImg,
string.substring(string.indexOf(".") + 1, string.length()), byteArrayOut);
imagePath.substring(imagePath.indexOf(".") + 1, imagePath.length()),
byteArrayOut);
byte[] value = byteArrayOut.toByteArray();
patriarch.createPicture(anchor,
row.getSheet().getWorkbook().addPicture(value, getImageType(value)));
@@ -168,7 +179,7 @@ public abstract class ExcelExportBase extends ExportBase {
}
private int createIndexCell(Row row, Map<String, HSSFCellStyle> styles, int index,
private int createIndexCell(Row row, Map<String, CellStyle> styles, int index,
ExcelExportEntity excelExportEntity) {
if (excelExportEntity.getName().equals("序号")
&& excelExportEntity.getFormat().equals(PoiBaseConstants.IS_ADD_INDEX)) {
@@ -188,8 +199,7 @@ public abstract class ExcelExportBase extends ExportBase {
*/
public void createListCells(Drawing patriarch, int index, int cellNum, Object obj,
List<ExcelExportEntity> excelParams, Sheet sheet,
Workbook workbook, Map<String, HSSFCellStyle> styles)
throws Exception {
Workbook workbook, Map<String, CellStyle> styles) throws Exception {
ExcelExportEntity entity;
Row row;
if (sheet.getRow(index) == null) {
@@ -234,7 +244,12 @@ public abstract class ExcelExportBase extends ExportBase {
public void createStringCell(Row row, int index, String text, CellStyle style,
ExcelExportEntity entity) {
Cell cell = row.createCell(index);
RichTextString Rtext = new HSSFRichTextString(text);
RichTextString Rtext;
if (type.equals(PoiBaseConstants.HSSF)) {
Rtext = new HSSFRichTextString(text);
} else {
Rtext = new XSSFRichTextString(text);
}
cell.setCellValue(Rtext);
if (style != null) {
cell.setCellStyle(style);
@@ -282,11 +297,11 @@ public abstract class ExcelExportBase extends ExportBase {
public int getImageType(byte[] value) {
String type = POIPublicUtil.getFileExtendName(value);
if (type.equalsIgnoreCase("JPG")) {
return HSSFWorkbook.PICTURE_TYPE_JPEG;
return Workbook.PICTURE_TYPE_JPEG;
} else if (type.equalsIgnoreCase("PNG")) {
return HSSFWorkbook.PICTURE_TYPE_PNG;
return Workbook.PICTURE_TYPE_PNG;
}
return HSSFWorkbook.PICTURE_TYPE_JPEG;
return Workbook.PICTURE_TYPE_JPEG;
}
private Map<Integer, int[]> getMergeDataMap(List<ExcelExportEntity> excelParams) {
@@ -311,7 +326,7 @@ public abstract class ExcelExportBase extends ExportBase {
return mergeMap;
}
public CellStyle getStyles(Map<String, HSSFCellStyle> styles, boolean b, boolean wrap) {
public CellStyle getStyles(Map<String, CellStyle> styles, boolean b, boolean wrap) {
return null;
}


+ 11
- 8
easypoi-test/src/main/java/org/jeecgframework/poi/excel/MyExcelExport.java Целия файл

@@ -2,36 +2,39 @@ package org.jeecgframework.poi.excel;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.export.ExcelExportServer;
/**
* 自己定义导出的样式
* @author JueYue
* @date 2014年12月2日 上午10:32:44
*/
public class MyExcelExport extends ExcelExportServer {
@Override
public HSSFCellStyle getHeaderStyle(HSSFWorkbook workbook, ExportParams entity) {
public CellStyle getHeaderStyle(Workbook workbook, ExportParams entity) {
return super.getHeaderStyle(workbook, entity);
}
@Override
public HSSFCellStyle getOneStyle(HSSFWorkbook workbook, boolean isWarp) {
public CellStyle getOneStyle(Workbook workbook, boolean isWarp) {
return super.getOneStyle(workbook, isWarp);
}
@Override
public CellStyle getStyles(Map<String, HSSFCellStyle> map, boolean needOne, boolean isWrap) {
public CellStyle getStyles(Map<String, CellStyle> map, boolean needOne, boolean isWrap) {
return super.getStyles(map, needOne, isWrap);
}
@Override
public HSSFCellStyle getTitleStyle(HSSFWorkbook workbook, ExportParams entity) {
public CellStyle getTitleStyle(Workbook workbook, ExportParams entity) {
return super.getTitleStyle(workbook, entity);
}
@Override
public HSSFCellStyle getTwoStyle(HSSFWorkbook workbook, boolean isWarp) {
public CellStyle getTwoStyle(Workbook workbook, boolean isWarp) {
return super.getTwoStyle(workbook, isWarp);
}


+ 38
- 4
easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportForMap.java Целия файл

@@ -9,14 +9,18 @@ import java.util.List;
import java.util.Map;
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.PoiBaseConstants;
import org.junit.Test;
public class ExcelExportForMap {
@Test
/**
* Map 测试
*/
// @Test
public void test() {
try {
List<ExcelExportEntity> entity = new ArrayList<ExcelExportEntity>();
@@ -32,8 +36,8 @@ public class ExcelExportForMap {
list.add(map);
}
HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams("测试", "测试"),
entity, list);
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("测试", "测试"), entity,
list);
FileOutputStream fos = new FileOutputStream("d:/tt.xls");
workbook.write(fos);
fos.close();
@@ -44,4 +48,34 @@ public class ExcelExportForMap {
}
}
@Test
public void testMany() {
try {
List<ExcelExportEntity> entity = new ArrayList<ExcelExportEntity>();
for (int i = 0; i < 500; i++) {
entity.add(new ExcelExportEntity("姓名" + i, "name" + i));
}
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>();
for (int j = 0; j < 500; j++) {
map.put("name" + j, j + "_" + i);
}
list.add(map);
}
ExportParams params = new ExportParams("测试", "测试");
params.setType(PoiBaseConstants.XSSF);
Workbook workbook = ExcelExportUtil.exportExcel(params, entity, list);
FileOutputStream fos = new FileOutputStream("d:/tt.xlsx");
workbook.write(fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

+ 2
- 1
easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilDataHandlerTest.java Целия файл

@@ -6,6 +6,7 @@ import java.util.Date;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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;
@@ -64,7 +65,7 @@ public class ExcelExportUtilDataHandlerTest {
CourseHanlder hanlder = new CourseHanlder();
hanlder.setNeedHandlerFields(new String[] { "课程名称" });
exportParams.setDataHanlder(hanlder);
HSSFWorkbook workbook = ExcelExportUtil.exportExcel(exportParams, CourseEntity.class, list);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, CourseEntity.class, list);
FileOutputStream fos = new FileOutputStream("d:/tt.xls");
workbook.write(fos);
fos.close();


+ 2
- 1
easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilIdTest.java Целия файл

@@ -6,6 +6,7 @@ import java.util.Date;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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;
@@ -69,7 +70,7 @@ public class ExcelExportUtilIdTest {
public void testExportExcel() throws Exception {
ExportParams params = new ExportParams("2412312", "测试", "测试");
params.setAddIndex(true);
HSSFWorkbook workbook = ExcelExportUtil.exportExcel(params, TeacherEntity.class, telist);
Workbook workbook = ExcelExportUtil.exportExcel(params, TeacherEntity.class, telist);
FileOutputStream fos = new FileOutputStream("d:/tt.xls");
workbook.write(fos);
fos.close();


+ 3
- 4
easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilTest.java Целия файл

@@ -7,7 +7,6 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.entity.CourseEntity;
import org.jeecgframework.poi.entity.StudentEntity;
@@ -38,7 +37,7 @@ public class ExcelExportUtilTest {
list.add(courseEntity);
}
Date start = new Date();
HSSFWorkbook workbook = ExcelExportUtil.exportExcel(
Workbook workbook = ExcelExportUtil.exportExcel(
new ExportParams("2412312", "测试", "测试"), CourseEntity.class, list);
System.out.println(new Date().getTime() - start.getTime());
File savefile = new File("d:/");
@@ -97,7 +96,7 @@ public class ExcelExportUtilTest {
//@Test
public void testExportExcel() throws Exception {
Date start = new Date();
HSSFWorkbook workbook = ExcelExportUtil.exportExcel(
Workbook workbook = ExcelExportUtil.exportExcel(
new ExportParams("2412312", "测试", "测试"), CourseEntity.class, list);
System.out.println(new Date().getTime() - start.getTime());
File savefile = new File("d:/");
@@ -117,7 +116,7 @@ public class ExcelExportUtilTest {
//@Test
public void testExportTitleExcel() throws Exception {
Date start = new Date();
HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams("2412312", "测试"),
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("2412312", "测试"),
CourseEntity.class, list);
System.out.println(new Date().getTime() - start.getTime());
File savefile = new File("d:/");


+ 2
- 1
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgMapExcelView.java Целия файл

@@ -41,7 +41,8 @@ public class JeecgMapExcelView extends AbstractExcelView {
new ExcelExportServer().createSheetForMap(hssfWorkbook,
(ExportParams) model.get(MapExcelConstants.PARAMS),
(List<ExcelExportEntity>) model.get(MapExcelConstants.ENTITY_LIST),
(Collection<? extends Map<?, ?>>) model.get(MapExcelConstants.MAP_LIST));
(Collection<? extends Map<?, ?>>) model.get(MapExcelConstants.MAP_LIST),
((ExportParams) model.get(MapExcelConstants.PARAMS)).getType());
}
public boolean isIE(HttpServletRequest request) {


+ 5
- 2
easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java Целия файл

@@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.vo.MapExcelConstants;
import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
import org.jeecgframework.poi.excel.export.ExcelExportServer;
import org.springframework.web.servlet.view.document.AbstractExcelView;
@@ -41,13 +42,15 @@ public class JeecgSingleExcelView extends AbstractExcelView {
new ExcelExportServer().createSheet(hssfWorkbook,
(ExportParams) map.get(NormalExcelConstants.PARAMS),
(Class<?>) map.get(NormalExcelConstants.CLASS),
(Collection<?>) map.get(NormalExcelConstants.DATA_LIST));
(Collection<?>) map.get(NormalExcelConstants.DATA_LIST),
((ExportParams) model.get(MapExcelConstants.PARAMS)).getType());
}
} else {
new ExcelExportServer().createSheet(hssfWorkbook,
(ExportParams) model.get(NormalExcelConstants.PARAMS),
(Class<?>) model.get(NormalExcelConstants.CLASS),
(Collection<?>) model.get(NormalExcelConstants.DATA_LIST));
(Collection<?>) model.get(NormalExcelConstants.DATA_LIST),
((ExportParams) model.get(MapExcelConstants.PARAMS)).getType());
}
}


Зареждане…
Отказ
Запис