您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > POI导出Excel集成SSH
使用POI操作Excel由于开发中涉及到比较多的Excel文件的处理,而POI和JXL用于处理Excel和Java程序交互的两大门派:但是在开发中使用JXL进行处理,JXL主要用于操作图片,POI主要用于操作大数据,对图片的处理比较灵活,但是不能设置表格的样式,而我们开发中如果把数据导出,一般不需要对图片进行处理,所以我们采用相对比较灵活的、更强大的POI方式。1.什么是POI?1..1简介--POI是Java程序与Excel表格进行交互的API接口,有了它,我们可以把web程序开发中页面的数据(或者数据库的数据)导出到Excel表格,相对于程序来讲,我们称为POI导出,也可以把Excel表格数据导入到web程序页面(或者数据库中)我们称为POI导入,完成Excel和我们web应用程序的交互。1.2.POI和Excel的关系HSSFWorkbook对象对应我们Excel文档对象HSSFSheet接口对应我们Excel文档对象的工作表HSSFCell接口对应我们的Excel工作表的每一个单元格2.使用POI导出2.1.下载jar包2.2.导入jar包到项目中2.3.使用POI相关的接口和类操作2.4.POI简单写出Excel示例代码1:packagetest;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStream;importorg.apache.poi.hssf.usermodel.HSSFCell;importorg.apache.poi.hssf.usermodel.HSSFRichTextString;importorg.apache.poi.hssf.usermodel.HSSFRow;importorg.apache.poi.hssf.usermodel.HSSFSheet;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;/***POI入门简单写出Excel数据*@authorAdministrator**/publicclassTest1{/***@paramargs*/publicstaticvoidmain(String[]args){OutputStreamoutputStream=null;try{outputStream=newFileOutputStream(d:\\helloPOI.xls);writer(outputStream);outputStream.close();}catch(Exceptione){e.printStackTrace();}}//写出Excel表格privatestaticvoidwriter(OutputStreamoutputStream)throwsIOException{//初始化一个webworkHSSFWorkbookwebwork=newHSSFWorkbook();//创建一个表,工作表的名称HSSFSheetsheet=webwork.createSheet(账号信息);//创建行,第一行,下标从0开始HSSFRowrow=sheet.createRow(0);//创建单元格HSSFCellcell=row.createCell(0);//单元格的值cell.setCellValue(newHSSFRichTextString(账号));//创建单元格HSSFCellcell2=row.createCell(1);//单元格的值cell2.setCellValue(newHSSFRichTextString(密码));webwork.write(outputStream);}}运行结果:2.5实现导出用户列表到Excel实现效果图:操作代码:Jsp:ahref=excelUserAction.action打印Excel表格/aAction:/***生成用户列表到Excel*@return*/publicStringusersToExcel(){System.out.println(执行了导出用户Excel表格Action);try{list=usersService.queryUser();writer(list);}catch(IOExceptione){System.out.println(导出Excel表格失败);e.printStackTrace();}System.out.println(导出Excel表格成功);returnnull;}/***写入到Excel表格*@paramlist2*/privatevoidwriter(ListUserslist)throwsIOException{//导出表格的位置OutputStreamoutputStream=null;try{//桌面C:\Users\Administrator\DesktopoutputStream=newFileOutputStream(C:\\Users\\Administrator\\Desktop\\userlist.xls);//outputStream=newFileOutputStream(fileExcel);//初始化一个Webwork(Excel)HSSFWorkbookwebwork=newHSSFWorkbook();//创建一个工作表(sheet)HSSFSheetsheet=webwork.createSheet(员工列表);//指定工作表的名称//创建一个工作行(row)第一行,下标从0开始HSSFRowrow2=sheet.createRow(0);//创建单元格(cell)第一个单元格,下标从0开始HSSFCellcell1=row2.createCell(0);cell1.setCellValue(用户编号);//设置其他单元格HSSFCellcell2=row2.createCell(1);cell2.setCellValue(用户名称);HSSFCellcell3=row2.createCell(2);cell3.setCellValue(用户密码);HSSFCellcell4=row2.createCell(3);cell4.setCellValue(用户电话);HSSFCellcell5=row2.createCell(4);cell5.setCellValue(用户真实姓名);HSSFCellcell6=row2.createCell(5);cell6.setCellValue(是否管理员);//循环设置内容for(inti=1;ilist.size();i++){//得到用户Usersusers=list.get(i-1);//创建一个工作行(row)第一行,下标从0开始HSSFRowrow=sheet.createRow(i);//创建单元格(cell)第一个单元格,下标从0开始HSSFCellcel1=row.createCell(0);cel1.setCellValue(users.getId());//设置其他单元格HSSFCellcel2=row.createCell(1);cel2.setCellValue(users.getName());HSSFCellcel3=row.createCell(2);cel3.setCellValue(users.getPassword());HSSFCellcel4=row.createCell(3);cel4.setCellValue(users.getTelephone());HSSFCellcel5=row.createCell(4);cel5.setCellValue(users.getUsername());HSSFCellcel6=row.createCell(5);cel6.setCellValue(users.getIsadmin());}webwork.write(outputStream);outputStream.close();}catch(Exceptione){//TODO:handleexception}}3使用POI导入3.1.POI简单读取Excel示例2:packagetest;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importorg.apache.poi.hssf.usermodel.HSSFCell;importorg.apache.poi.hssf.usermodel.HSSFRow;importorg.apache.poi.hssf.usermodel.HSSFSheet;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;/***POI入门简单写入Excel表格*@authorAdministrator**/publicclassTest2{publicstaticvoidmain(String[]args)throwsIOException{InputStreaminputStream=null;try{inputStream=newFileInputStream(newFile(d:\\userlist.xls));read(inputStream);}catch(Exceptione){//TODO:handleexception}finally{inputStream.close();}}/***读取Excel的方法*@paraminputStreamExcel在电脑中的具体路径例如:d:\\userlist.xls*@throwsIOException*/publicstaticvoidread(InputStreaminputStream)throwsIOException{//初始化整个ExcelHSSFWorkbookwebwork=newHSSFWorkbook(inputStream);//获得第一个sheet表HSSFSheetsheet=webwork.getSheetAt(0);//获取第一个sheet表//HSSFSheetsheet=webwork.getSheet(员工列表);//获取第一行HSSFRowrow0=sheet.getRow(0);//获取第一个单元格HSSFCellcell0=row0.getCell(0);//打印出第一个单元格的内容System.out.println(cell0.getRichStringCellValue().getString());//打印获取表格System.out.println(webwork.getNumberOfSheets());}}运行结果:3.2.实现从Excel插入用户列表到数据库实现结果图:操作代码:Jsp:Js:functionfromExcel(){varfile_up=document.getElementById(frompath);file_up.select();file_up.blur();varfileExcel=document.selection.createRange().text;alert(fileExcel);document.forms[1].action=excelFromUserAction.action?fileExcel=+fileExcel;document.forms[1].submit();}formaction=excelFromUserAction.actionmethod=postid=upload导入Excel到数据库inputtype=fileid=frompathtitle=请选择导入
本文标题:POI导出Excel集成SSH
链接地址:https://www.777doc.com/doc-2851877 .html