如何用java完成Excel快速的导入导出

Python013

如何用java完成Excel快速的导入导出,第1张

导出

现在我们定义好对象了,如何导出Excel --ExcelExportUtil 这个导出工具类

public void testExportExcel_1() throws Exception {

ExportParams params = new ExportParams("0328课程表", "日期:2016-03-28", "六年一班")

Workbook workbook = ExcelExportUtil.exportExcel(params, CourseEntity.class,courseList)

FileOutputStream fos = new FileOutputStream("D:/excel/0328课程表.xls")

workbook.write(fos)

fos.close()

}

我们只要把我们定义好的对象的class传进去,以及对象的集合,Easypoi就可以返回一个Excel的workbook了,同时Easypoi是兼容03版本office和07版本office,你要穿个参数指定下类型及可以了,是不是不是比我们自己写代码简单多了,最少只需要2行代码就可以完成我们的office操作了

导入

我们把导出写完了,导入是不是很复杂呢,也不是,导入也是同样简单,定时实体和上面定义的方式一样

导入是用导入工具类

ImportParams params = new ImportParams()

params.setHeadRows(2)

List<CourseEntity>list = ExcelImportUtil.importExcel(inputStream, CourseEntity.class, params)

定义下表头的参数,然后把流传入进去就可以得到我们的对象列表是不是so easy.赶快来使用吧

java导出Excel通用方法,只需要一个list 集合。

package oa.common.utils

import java.io.OutputStream

import java.util.List

import javax.servlet.http.HttpServletResponse

import org.apache.struts2.ServletActionContext

import java.lang.reflect.Field

import jxl.Workbook

import jxl.format.Alignment

import jxl.format.Border

import jxl.format.BorderLineStyle

import jxl.format.VerticalAlignment

import jxl.write.Label

import jxl.write.WritableCellFormat

import jxl.write.WritableFont

import jxl.write.WritableSheet

import jxl.write.WritableWorkbook

/***

* @author lsf

*/

public class ExportExcel {

/***************************************************************************

* @param fileName EXCEL文件名称

* @param listTitle EXCEL文件第一行列标题集合

* @param listContent EXCEL文件正文数据集合

* @return

*/

public final static String exportExcel(String fileName,String[] Title, List<Object>listContent) {

String result="系统提示:Excel文件导出成功!"

// 以下开始输出到EXCEL

try {

//定义输出流,以便打开保存对话框______________________begin

HttpServletResponse response=ServletActionContext.getResponse()

OutputStream os = response.getOutputStream()// 取得输出流

response.reset()// 清空输出流

response.setHeader("Content-disposition", "attachmentfilename="+ new String(fileName.getBytes("GB2312"),"ISO8859-1"))

// 设定输出文件头

response.setContentType("application/msexcel")// 定义输出类型

//定义输出流,以便打开保存对话框_______________________end

/** **********创建工作簿************ */

WritableWorkbook workbook = Workbook.createWorkbook(os)

/** **********创建工作表************ */

WritableSheet sheet = workbook.createSheet("Sheet1", 0)

/** **********设置纵横打印(默认为纵打)、打印纸***************** */

jxl.SheetSettings sheetset = sheet.getSettings()

sheetset.setProtected(false)

/** ************设置单元格字体************** */

WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10)

WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD)

/** ************以下设置三种单元格样式,灵活备用************ */

// 用于标题居中

WritableCellFormat wcf_center = new WritableCellFormat(BoldFont)

wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN)// 线条

wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE)// 文字垂直对齐

wcf_center.setAlignment(Alignment.CENTRE)// 文字水平对齐

wcf_center.setWrap(false)// 文字是否换行

// 用于正文居左

WritableCellFormat wcf_left = new WritableCellFormat(NormalFont)

wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN)// 线条

wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE)// 文字垂直对齐

wcf_left.setAlignment(Alignment.LEFT)// 文字水平对齐

wcf_left.setWrap(false)// 文字是否换行

/** ***************以下是EXCEL开头大标题,暂时省略********************* */

//sheet.mergeCells(0, 0, colWidth, 0)

//sheet.addCell(new Label(0, 0, "XX报表", wcf_center))

/** ***************以下是EXCEL第一行列标题********************* */

for (int i = 0i <Title.lengthi++) {

sheet.addCell(new Label(i, 0,Title[i],wcf_center))

}

/** ***************以下是EXCEL正文数据********************* */

Field[] fields=null

int i=1

for(Object obj:listContent){

fields=obj.getClass().getDeclaredFields()

int j=0

for(Field v:fields){

v.setAccessible(true)

Object va=v.get(obj)

if(va==null){

va=""

}

sheet.addCell(new Label(j, i,va.toString(),wcf_left))

j++

}

i++

}

/** **********将以上缓存中的内容写到EXCEL文件中******** */

workbook.write()

/** *********关闭文件************* */

workbook.close()

} catch (Exception e) {

result="系统提示:Excel文件导出失败,原因:"+ e.toString()

System.out.println(result)

e.printStackTrace()

}

return result

}

}

测试:

/**

* 导出excel

* @return

*/

public String excelPage(){

ExportExcel excel=new ExportExcel()

String str=""

try {

str = new String(getHTTP.getRequest().getParameter("wineOrg.orgName").getBytes("iso8859-1"),"UTF-8")

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

wineOrg.setOrgName(str)

List<Object>li=service.exportExcel(wineOrg)

String[] Title={"机构ID","会员编号","类别","名称","省ID","省名称","城市ID","城市名称","详细地址","联系人","性别","联系手机","联系电话","传真","邮箱","QQ","生日","积分","客户等级","现金账户余额","结算方式","客户类型","购买次数","购买支数","创建人ID","创建人姓名","create_time","del","STS","备注","负责人ID","负责人姓名","审核标识","审核人ID ","审核人姓名","审核日期","分配人ID","分配人姓名","分配日期","修改人ID","修改人姓名 ","修改时间"}

excel.exportExcel("客户资料信息.xls",Title, li)

return SUCCESS

}