下载站

展开
精品推荐
POI导出Excel

POI导出Excel

文件处理大小:845.94MB语言: / 类别:应用软件系统: / WinAll, Win7 提供:
应用介绍

使用POI生成excel,然后直接生成流文件,前台页面直接弹出下载窗口,不需要先生成excel文本再下载,省时省力

ApachePOI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对MicrosoftOffice格式档案读和写的功能。.NET的开发人员则可以利用NPOI(POIfor.NET)来存取POI的功能。

poi导出excel基本步骤

第一步:引入所需的jar在工程项目lib目录下。

第二步:在点击导出页面设置一个事件触发servlet读出事先保存好的xsl文件;

<scripttype="text/javascript"charset="UTF-8"

functionexcel(){

window.location="exportExcel";?//“exportExcel”是一个servlet地址

}

</script

<inputtype="button"value="导出excel"onclick="excel()"

第三步:实现servlet

packagecom.zust.servlet;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.IOException;

importjava.io.OutputStream;

importjava.io.PrintWriter;

importjava.util.List;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcom.zust.excel.*;

importcom.zust.paper.Paper;

publicclassexportExcelextendsHttpServlet{

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

this.doPost(request,response);

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

//获得项目服务器根路径

Stringpath=request.getSession().getServletContext().getRealPath("");

//把所有的路径的单斜杠替换成双斜杠

path=path.replace("\\","//");

gradesXLSxls=newgradesXLS(path);

List<Paperlist=(List<Paper)request.getSession().getAttribute("paperLit");

Booleanflag=?xls.CreateExcel(list);

OutputStreamo=response.getOutputStream();

byteb[]=newbyte;

//thefiletodownload.

FilefileLoad=newFile(path,"grades.xls");

//thedialogboxofdownloadfile.

response.setHeader("Content-disposition","attachment;filename="+"grades.xls");

//settheMIMEtype.

response.setContentType("application/vnd.ms-excel");

//getthefilelength.

longfileLength=fileLoad.length();

Stringlength=String.valueOf(fileLength);

response.setHeader("Content_Length",length);

//downloadthefile.

FileInputStreamin=newFileInputStream(fileLoad);

intn=0;

while((n=in.read(b))!=-1){

o.write(b,0,n);

}

}

}

第四部:servlet调用的方法:xls.CreateExcel(list);

packagecom.zust.excel;

importjava.io.File;

importjava.io.FileNotFoundException;

importjava.io.FileOutputStream;

importjava.io.IOException;

importjava.util.List;

importorg.apache.poi.hssf.usermodel.HSSFCell;

importorg.apache.poi.hssf.usermodel.HSSFRow;

importorg.apache.poi.hssf.usermodel.HSSFSheet;

importorg.apache.poi.hssf.usermodel.HSSFWorkbook;

importcom.zust.paper.Paper;

publicclassgradesXLS{

privateStringpath;

//构造函数获取保存excel的路径

publicgradesXLS(Stringpath){

this.path=path;

}

publicBooleanCreateExcel(ListpaperList){

Booleanflag=true;

//创建一个工作簿

HSSFWorkbookworkBook=newHSSFWorkbook();

//创建一个工作表,名为:第一页

HSSFSheetsheet=workBook.createSheet("成绩表");

//设置单元格的宽度(0:表示第一行的第一个单元格,1:第一行的第二个单元格)

sheet.setColumnWidth((short)0,3500);

sheet.setColumnWidth((short)1,5000);

sheet.setColumnWidth((short)2,5000);

//创建一个单元格,从0开始

HSSFRowrow=sheet.createRow((short)0);

//构造一个数组设置第一行之后的单元格

HSSFCellcell[]=newHSSFCell;

for(inti=0;i<5;i++){

cell[i]=row.createCell(i);

}

cell.setCellValue("用户名");

cell.setCellValue("开始时间");

cell.setCellValue("结束时间");

cell.setCellValue("集体编号");

cell.setCellValue("总分");

//获得从数据库中查询出来的数据

if(paperList!=null&&paperList.size()0){

//循环list中的数据

for(inti=0;i<paperList.size();i++){

Paperp=(Paper)paperList.get(i);

HSSFRowdataRow=sheet.createRow(i+1);

HSSFCelldata[]=newHSSFCell;

for(intj=0;j<5;j++){

data[j]=dataRow.createCell(j);

}

data.setCellValue(p.getUsername());

data.setCellValue(p.getStarttime());

data.setCellValue(p.getEndtime());

if(p.getGroupno()!=-1){

data.setCellValue(p.getGroupno());

}else{

data.setCellValue("无");

}

data.setCellValue(p.getTotal());

try{

//输出成XLS文件

Filefile=newFile(path);

FileOutputStreamfos=newFileOutputStream(file+"\\grades.xls");

//写入数据,并关闭文件

workBook.write(fos);

fos.close();

}catch(FileNotFoundExceptione){

e.printStackTrace();

flag=false;

}catch(IOExceptione){

e.printStackTrace();

flag=false;

}

}

}

returnflag;

}

}

Tags:Excel.

应用推荐查看更多
热门下载查看更多
精选应用
点击查看更多
专题合集查看更多
热门专题查看更多
友情链接0投诉联系:ichaoinc@gmail.com