java 动态导入excel_java实现导入导出excel数据

项目需要,要实现一个导入导出excel的功能,于是,任务驱动着我学习到了POI和JXL这2个java操作Excel的插件。

一、POI和JXL介绍

1、POI:是对所有office资源进行读写的一套工具包、属于apache开源组织。

poi操作excel:

poi是把整个文件的属性都封装在HSSFWorkbook 中;

通过HSSFWorkbook来操作单个工作薄。然后通过工作薄来操作行;

在通过行来操控单元格。这样一级一级的分拆下来;

HSSFWorkbook---->HSSFSheet----->HSSFRow---->HSSFCell;

由于是基于HSSFWorkbook对象一步步创建起来的。所以不用把创建好的单元格添加进这个对象中、

如果需要对部分表格进行设置样式什么的。就可以创立HSSFCellStyle对象来进行设定样式;

2、JXL:只能对excel进行操作的一套工具包。

jxl是把整个文件封装在Workbook相关对象中;

通过Workbook去创建sheet工作薄;但是和poi不一样的地方是

jxl是通过向sheet中使用label(单元格)来进行读取写入;

Workbook----->sheet------>label ;

jxl是先创建一个工作区域、然后区创立单元格、单元格包含这个单元格的位置、内容等信息;然后把这个单元格加入工作区;

二、实例操作

1、用POI方式实现导出数据到excel功能

实现思路:当一点击导出按钮就跳转到指定的action去执行对应方法,先调用dao对数据库数据进行查询,根据dao层的方法返回一个集合对象,然后把这个集合对象的数据交互给POI去动态生成单元格并设置进去。项目后端我用的是ssh框架搭建项目,所以逻辑代码我写在action类中。直接看以下代码示例

前端jsp页面按钮部分

  导出

交换生实体类

package com.international.model;

import java.util.Date;

import cn.afterturn.easypoi.excel.annotation.Excel;

import cn.afterturn.easypoi.excel.annotation.ExcelTarget;

public class ExchangeStudent {

//此表按照单表来操作,只用作记录

private int id;

private String studentNo;

private String studentName;

private String sex;

private String major;

private String className;

private Date startTime;

private Date endTime;

private String exchangeCollege;

private String reserves1;

private String reserves2;

private String reserves3;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getStudentNo() {

return studentNo;

}

public void setStudentNo(String studentNo) {

this.studentNo = studentNo;

}

public String getStudentName() {

return studentName;

}

public void setStudentName(String studentName) {

this.studentName = studentName;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getMajor() {

return major;

}

public void setMajor(String major) {

this.major = major;

}

public String getClassName() {

return className;

}

public void setClassName(String className) {

this.className = className;

}

public Date getStartTime() {

return startTime;

}

public void setStartTime(Date startTime) {

this.startTime = startTime;

}

public Date getEndTime() {

return endTime;

}

public void setEndTime(Date endTime) {

this.endTime = endTime;

}

public String getExchangeCollege() {

return exchangeCollege;

}

public void setExchangeCollege(String exchangeCollege) {

this.exchangeCollege = exchangeCollege;

}

public String getReserves1() {

return reserves1;

}

public void setReserves1(String reserves1) {

this.reserves1 = reserves1;

}

public String getReserves2() {

return reserves2;

}

public void setReserves2(String reserves2) {

this.reserves2 = reserves2;

}

public String getReserves3() {

return reserves3;

}

public void setReserves3(String reserves3) {

this.reserves3 = reserves3;

}

}

后端action类内的业务方法代码

//导出交换生

public String exportExchangeSudent() throws Exception{

//获取交换生对象

List studentList = esd.queryInterStudents("");

String

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值