1、Excel优化

Former-commit-id: 079402c892157c8da8334bbcb587263638c72a61
master
wangbing 5 years ago
parent a0baf67677
commit fffcdcf9b6

@ -100,7 +100,7 @@ public class WExcel<T> implements Serializable, Cloneable {
/** /**
* *
*/ */
private List<${basePackage}.frame.excel.WColumn> columnList = new ArrayList<>(); private List<WColumn> columnList = new ArrayList<>();
/** /**
* *
@ -120,7 +120,7 @@ public class WExcel<T> implements Serializable, Cloneable {
* *
* @return WColumn * @return WColumn
*/ */
private List<${basePackage}.frame.excel.WColumn> initColumns(Class<?> clazz) { private List<WColumn> initColumns(Class<?> clazz) {
//获取工作簿名称,没有则以类名为默认工作簿名称 //获取工作簿名称,没有则以类名为默认工作簿名称
if (clazz.isAnnotationPresent(SheetName.class)) { if (clazz.isAnnotationPresent(SheetName.class)) {
SheetName sheetName = clazz.getAnnotation(SheetName.class); SheetName sheetName = clazz.getAnnotation(SheetName.class);
@ -138,7 +138,7 @@ public class WExcel<T> implements Serializable, Cloneable {
continue; continue;
} }
${basePackage}.frame.excel.WColumn WColumn = new ${basePackage}.frame.excel.WColumn(); WColumn WColumn = new WColumn();
WColumn.setField(field); WColumn.setField(field);
Method set = ClassUtil.setMethod(field.getName(), clazz, field.getType()); Method set = ClassUtil.setMethod(field.getName(), clazz, field.getType());
@ -161,7 +161,7 @@ public class WExcel<T> implements Serializable, Cloneable {
WColumn.setDescription(field.getAnnotation(ColumnDescription.class).value()); WColumn.setDescription(field.getAnnotation(ColumnDescription.class).value());
} }
//获取下拉列表 //获取下拉列表
if (field.isAnnotationPresent(${basePackage}.frame.excel.annotation.ColumnList.class)) { if (field.isAnnotationPresent(ColumnList.class)) {
WColumn.setCellList(field.getAnnotation(ColumnList.class).value()); WColumn.setCellList(field.getAnnotation(ColumnList.class).value());
} }
@ -229,7 +229,7 @@ public class WExcel<T> implements Serializable, Cloneable {
if (list.size() > 0) { if (list.size() > 0) {
for (T t : list) { for (T t : list) {
WRow row = new WRow(); WRow row = new WRow();
for (${basePackage}.frame.excel.WColumn column : columnList) { for (WColumn column : columnList) {
if (column == null) { if (column == null) {
continue; continue;
} }
@ -261,6 +261,14 @@ public class WExcel<T> implements Serializable, Cloneable {
return this; return this;
} }
public WExcel loadData(File file) throws TemplateNotMatchException, ReadErrorException, IOException {
return loadData(FileUtil.readFileToByteArray(file), null);
}
public WExcel loadData(File file, Processor<T> processor) throws TemplateNotMatchException, ReadErrorException, IOException {
return loadData(FileUtil.readFileToByteArray(file), processor);
}
public WExcel loadData(byte[] bytes) throws TemplateNotMatchException, ReadErrorException { public WExcel loadData(byte[] bytes) throws TemplateNotMatchException, ReadErrorException {
return loadData(bytes, null); return loadData(bytes, null);
} }
@ -672,29 +680,4 @@ public class WExcel<T> implements Serializable, Cloneable {
fileOutputStream.write(getBytes()); fileOutputStream.write(getBytes());
fileOutputStream.close(); fileOutputStream.close();
} }
public static void main(String[] args) throws IOException {
Dept dept = new Dept();
dept.setDeptName("AAAAAA");
ArrayList<Dept> depts = new ArrayList<Dept>();
depts.add(dept);
File file = new File("E:\\E.xlsx");
// 导出模板
// new WExcel<Dept>(Dept.class).loadData(depts).toFile(file);
// 检查excel文件是否符合导入
byte[] bytes = FileUtil.readFileToByteArray(new File("E:\\E.xlsx"));
try {
WExcel check = new WExcel<Dept>(Dept.class).loadData(bytes);
check.toFile(new File("E:\\E_err.xlsx"));
System.out.println(check.hasError());
} catch (TemplateNotMatchException e) {
e.printStackTrace();
} catch (ReadErrorException e) {
e.printStackTrace();
}
System.out.println();
}
} }

@ -2,6 +2,7 @@ package ${basePackage}.module.system.ent;
import ${basePackage}.frame.excel.annotation.ColumnDescription; import ${basePackage}.frame.excel.annotation.ColumnDescription;
import ${basePackage}.frame.excel.annotation.ColumnName; import ${basePackage}.frame.excel.annotation.ColumnName;
import ${basePackage}.frame.excel.annotation.ColumnList;
import ${basePackage}.frame.excel.annotation.SheetName; import ${basePackage}.frame.excel.annotation.SheetName;
import ${basePackage}.frame.base.BaseEntity; import ${basePackage}.frame.base.BaseEntity;
@ -50,6 +51,7 @@ public class Dept extends BaseEntity {
*/ */
@ColumnName("是否有效") @ColumnName("是否有效")
@ColumnDescription("") @ColumnDescription("")
@ColumnList({"是", "否"})
private Boolean valid; private Boolean valid;
public String getDeptCode() { public String getDeptCode() {

@ -12,6 +12,7 @@ import ${basePackage}.frame.utils.IDgenerator;
import ${basePackage}.frame.utils.MapperUtil; import ${basePackage}.frame.utils.MapperUtil;
import ${basePackage}.frame.utils.Message; import ${basePackage}.frame.utils.Message;
import ${basePackage}.frame.utils.ValidationUtil; import ${basePackage}.frame.utils.ValidationUtil;
import ${basePackage}.module.system.ent.LogErr;
import ${basePackage}.module.system.mpr.LogErrMapper; import ${basePackage}.module.system.mpr.LogErrMapper;
import ${basePackage}.module.system.req.LogErrCreateRequest; import ${basePackage}.module.system.req.LogErrCreateRequest;
import ${basePackage}.module.system.req.LogErrDeleteRequest; import ${basePackage}.module.system.req.LogErrDeleteRequest;
@ -54,7 +55,7 @@ public class LogErrManagerImpl implements ${basePackage}.module.system.mgr.LogEr
} }
long id = IDgenerator.nextId(); long id = IDgenerator.nextId();
${basePackage}.module.system.ent.LogErr entity = MapperUtil.map(request, ${basePackage}.module.system.ent.LogErr.class); LogErr entity = MapperUtil.map(request, LogErr.class);
entity.setId(id); entity.setId(id);
long result = logErrMapper.insert(entity, token); long result = logErrMapper.insert(entity, token);
@ -139,7 +140,7 @@ public class LogErrManagerImpl implements ${basePackage}.module.system.mgr.LogEr
if (StringUtil.isNotEmpty(request.getSortKey())) { if (StringUtil.isNotEmpty(request.getSortKey())) {
PageHelper.orderBy(request.getSortKey() + " " + request.getSortType()); PageHelper.orderBy(request.getSortKey() + " " + request.getSortType());
} }
PageInfo<${basePackage}.module.system.ent.LogErr> pageInfo = new PageInfo<>(logErrMapper.find(request, token)); PageInfo<LogErr> pageInfo = new PageInfo<>(logErrMapper.find(request, token));
response.setResult(pageInfo.getList()); response.setResult(pageInfo.getList());
response.setTotalCount(pageInfo.getTotal()); response.setTotalCount(pageInfo.getTotal());
@ -163,7 +164,7 @@ public class LogErrManagerImpl implements ${basePackage}.module.system.mgr.LogEr
return response; return response;
} }
${basePackage}.module.system.ent.LogErr po = logErrMapper.get(request, token); LogErr po = logErrMapper.get(request, token);
if (po != null) { if (po != null) {
response.setLogErr(po); response.setLogErr(po);

@ -3,6 +3,7 @@ package ${basePackage}.module.system.mpr;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import ${basePackage}.frame.auth.Token; import ${basePackage}.frame.auth.Token;
import ${basePackage}.module.system.ent.LogErr;
import ${basePackage}.module.system.req.LogErrDeleteRequest; import ${basePackage}.module.system.req.LogErrDeleteRequest;
import ${basePackage}.module.system.req.LogErrFindRequest; import ${basePackage}.module.system.req.LogErrFindRequest;
import ${basePackage}.module.system.req.LogErrGetRequest; import ${basePackage}.module.system.req.LogErrGetRequest;
@ -26,7 +27,7 @@ public interface LogErrMapper {
* @param token * @param token
* @return * @return
*/ */
long insert(@Param("request") ${basePackage}.module.system.ent.LogErr request, @Param("token") Token token); long insert(@Param("request") LogErr request, @Param("token") Token token);
/** /**
* *
@ -35,7 +36,7 @@ public interface LogErrMapper {
* @param token * @param token
* @return * @return
*/ */
long insertBatch(@Param("list") List<${basePackage}.module.system.ent.LogErr> request, @Param("token") Token token); long insertBatch(@Param("list") List<LogErr> request, @Param("token") Token token);
/** /**
* *
@ -62,7 +63,7 @@ public interface LogErrMapper {
* @param token * @param token
* @return * @return
*/ */
List<${basePackage}.module.system.ent.LogErr> find(@Param("request") LogErrFindRequest request, @Param("token") Token token); List<LogErr> find(@Param("request") LogErrFindRequest request, @Param("token") Token token);
/** /**
* *
@ -71,5 +72,5 @@ public interface LogErrMapper {
* @param token * @param token
* @return * @return
*/ */
${basePackage}.module.system.ent.LogErr get(@Param("request") LogErrGetRequest request, @Param("token") Token token); LogErr get(@Param("request") LogErrGetRequest request, @Param("token") Token token);
} }

@ -1,6 +1,7 @@
package ${basePackage}.module.system.rsp; package ${basePackage}.module.system.rsp;
import ${basePackage}.frame.base.BaseFindResponse; import ${basePackage}.frame.base.BaseFindResponse;
import ${basePackage}.module.system.ent.LogErr;
/** /**
* LogErrFindResponse - * LogErrFindResponse -
@ -9,5 +10,5 @@ import ${basePackage}.frame.base.BaseFindResponse;
* @version 0.0.1 * @version 0.0.1
* @since 2017-01-01 * @since 2017-01-01
*/ */
public class LogErrFindResponse extends BaseFindResponse<${basePackage}.module.system.ent.LogErr> { public class LogErrFindResponse extends BaseFindResponse<LogErr> {
} }

@ -1,11 +1,28 @@
package ${basePackage}; package ${basePackage};
import ${basePackage}.frame.utils.*; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import ${basePackage}.frame.excel.WExcel;
import ${basePackage}.frame.excel.exception.ReadErrorException;
import ${basePackage}.frame.excel.exception.TemplateNotMatchException;
import ${basePackage}.frame.utils.AESUtil;
import ${basePackage}.frame.utils.Base64Util;
import ${basePackage}.frame.utils.IDgenerator;
import ${basePackage}.frame.utils.MD5Util;
import ${basePackage}.frame.utils.MapperUtil;
import ${basePackage}.frame.utils.ProcessUtil;
import ${basePackage}.frame.utils.RSAUtil;
import ${basePackage}.module.system.ent.Dept;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
* UtilTest - - * UtilTest - -
@ -91,4 +108,49 @@ public class UtilTest {
boolean b = RSAUtil.doCheck("我有一个苹果".getBytes(), sign); boolean b = RSAUtil.doCheck("我有一个苹果".getBytes(), sign);
System.out.println(b); System.out.println(b);
} }
@Test
public void testExcel() {
// 准备导出数据
Dept dept = new Dept();
dept.setDeptCode("A000101");
dept.setDeptName("人事部");
dept.setDeptAlias("人事部");
dept.setSupCode("A0001");
dept.setSupName("董事会");
dept.setValid(true);
ArrayList<Dept> depts = new ArrayList<Dept>();
depts.add(dept);
// 设置文件地址及导出
try {
File file = new File("E:\\E.xlsx");
new WExcel<Dept>(Dept.class).loadData(depts).toFile(file);
} catch (IOException e) {
e.printStackTrace();
}
// 导入数据
try {
File file = new File("E:\\E.xlsx");
WExcel.Processor<Dept> processor = new WExcel.Processor<Dept>() {
@Override
public List<String> exec(Dept o) {
System.out.println("从Excel中读取对象:" + MapperUtil.toJson(o));
return Arrays.asList("模拟处理对象业务时出现的错误信息1","模拟处理对象业务时出现的错误信息2");
}
};
WExcel check = new WExcel<Dept>(Dept.class).loadData(file, processor);
if (check.hasError()) {
System.out.println("导入或处理有错误.");
check.toFile(new File("E:\\E_err.xlsx"));
}
} catch (TemplateNotMatchException e) {
Assert.assertTrue("导入文件与模板不匹配,请重新下载模板!", false);
} catch (ReadErrorException e) {
Assert.assertTrue("导入文件错误,请检查格式或文件是否被破坏!", false);
} catch (IOException e) {
Assert.assertTrue("读取错误!", false);
}
}
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.