java怎么导出excel表格

Python031

java怎么导出excel表格,第1张

通过这个例子,演示以下如何用java生成excel文件

import org.apache.poi.hssf.usermodel.*

import java.io.FileOutputStream

import java.io.IOException

publicclass CreateCells

{

publicstaticvoid main(String[] args)

throws IOException

{

HSSFWorkbook wb = new HSSFWorkbook()//建立新HSSFWorkbook对象

HSSFSheet sheet = wb.createSheet("new sheet")//建立新的sheet对象

// Create a row and put some cells in it. Rows are 0 based.

HSSFRow row = sheet.createRow((short)0)//建立新行

// Create a cell and put a value in it.

HSSFCell cell = row.createCell((short)0)//建立新cell

cell.setCellValue(1)//设置cell的整数类型的值

// Or do it on one line.

row.createCell((short)1).setCellValue(1.2)//设置cell浮点类型的值

row.createCell((short)2).setCellValue("test")//设置cell字符类型的值

row.createCell((short)3).setCellValue(true)//设置cell布尔类型的值

HSSFCellStyle cellStyle = wb.createCellStyle()//建立新的cell样式

cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"))//设置cell样式为定制的日期格式

HSSFCell dCell =row.createCell((short)4)

dCell.setCellValue(new Date())//设置cell为日期类型的值

dCell.setCellStyle(cellStyle)//设置该cell日期的显示格式

HSSFCell csCell =row.createCell((short)5)

csCell.setEncoding(HSSFCell.ENCODING_UTF_16)//设置cell编码解决中文高位字节截断

csCell.setCellValue("中文测试_Chinese Words Test")//设置中西文结合字符串

row.createCell((short)6).setCellType(HSSFCell.CELL_TYPE_ERROR)//建立错误cell

// Write the output to a file

FileOutputStream fileOut = new FileOutputStream("workbook.xls")

wb.write(fileOut)

fileOut.close()

}

}

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

}