JEECG 通用数据库导入导出excel

需求:在实际J2EE项目中,经常遇到需要导入导出excel文件的情况;

解决方案: 利用java的annotation,自定义一个annotation ,在声明pojo的时候对需要操作字段的属性进行声明,

                   然后通用的处理类运行时,读取annotation 相关信息进行解析。

                   对于导入,读入是一个excel文件,输出一个list<pojo> ,如果你用hibernate操作的话相当方便。

                   对于导出,你需要组织一个List<pojo>传入,将得到一个excel。

 

1、页面效果如下图所示:

excel导入导出

 2、自定义的Exel的annotation如下图所示:

@Retention(RetentionPolicy.RUNTIME)   
@Target(ElementType.FIELD)
public @interface Excel {
//导入时,对应数据库的字段 主要是用户区分每个字段,不能有annocation重名的
//导出时的列名   导出排序跟定义了annotation的字段的顺序有关  
public String exportName();
//导出时在excel中每个列的宽  单位为字符,一个汉字=2个字符 
//如 以列名列内容中较合适的长度   例如姓名列6 【姓名一般三个字】  性别列4【男女占1,但是列标题两个汉字】
//限制1-255
public int exportFieldWidth();
//导出时是否进行字段转换   例如 性别用int存储,导出时可能转换为男,女
//若是sign为1,则需要在pojo中加入一个方法 get字段名Convert()
//例如,字段sex ,需要加入 public String getSexConvert()  返回值为string
//若是sign为0,则不必管
public int exportConvertSign();
//导入数据是否需要转化      及 对已有的excel,是否需要将字段转为对应的数据
//若是sign为1,则需要在pojo中加入   void set字段名Convert(String text)
public int importConvertSign();
}

  

3、model类如下图所示:

@Entity
@Table(name = "JEECG_TUSER", schema = "")
public class Tuser implements java.io.Serializable {

	// Fields

	private String cid;
	@Excel(exportName="真实姓名", exportConvertSign = 0, exportFieldWidth = 10, importConvertSign = 0)
	private String realname;
	@Excel(exportName="所属部门", exportConvertSign = 0, exportFieldWidth = 10, importConvertSign = 0)
	private String org;
	@Excel(exportName="邮箱", exportConvertSign = 0, exportFieldWidth = 10, importConvertSign = 0)	
	private String mail;
	@Excel(exportName="手机", exportConvertSign = 0, exportFieldWidth = 10, importConvertSign = 0)	
	private String mobile;
	@Excel(exportName="用户类型", exportConvertSign = 0, exportFieldWidth = 10, importConvertSign = 0)	
	private String usertype;
	@Excel(exportName="状态", exportConvertSign = 0, exportFieldWidth = 10, importConvertSign = 0)	
	private String status;
	@Excel(exportName="创建时间", exportConvertSign = 0, exportFieldWidth = 10, importConvertSign = 0)	
	private Date ccreatedatetime;
	@Excel(exportName="修改时间", exportConvertSign = 0, exportFieldWidth = 10, importConvertSign = 0)	
	private Date cmodifydatetime;
	@Excel(exportName="用户名", exportConvertSign = 0, exportFieldWidth = 10, importConvertSign = 0)	
	private String cname;
	@Excel(exportName="密码", exportConvertSign = 0, exportFieldWidth = 30, importConvertSign = 0)	
	private String cpwd;
}

 

4、jsp页面如下图所示:

<head>
<jsp:include page="/inc.jsp"></jsp:include>
   <script>  
       function exportExcel(){
    	   window.location.href="
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值