java 通用导出一个excel

Python015

java 通用导出一个excel,第1张

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

}

如下参考:

1.首先,我们打开桌面,双击鼠标左键打开电脑中的Excel表格。

2.然后我们选择需要更改单元格格式的列,如下图所示。

3.然后在界面顶部的菜单栏中选择数据选项,然后单击底部的排序选项。

3.然后单击separator选项,然后单击next选项。

4.然后我们选择逗号,下拉逗号,然后单击next。

5.我们选择单元格上的绿色三角形,可批量转换为文本格式。