您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Excel数据在(jsp+ssh)环境下导入导出
导入导出EXCEL数据(jsp+ssh)1.首先搭建ssh框架(这儿不做介绍);2.导入jar包(如下):3.导出:(下面以一个例子的形式)1.新创建一个jsp页面如(export.jsp),在页面上添加如下代码:ahref=%=path%/indexAction!export.action导出数据到excel/a2.进入indexAction.java文件,编写export方法由于要用到一个STUDENT类,就先编写STUDENT类,Student类代码如下:publicclassStudent{privateStringstudentId;privateStringstudentName;privateStringstudentSex;privateStringstudentDormitory;privateStringstudentSept;publicStringgetStudentId(){returnstudentId;}publicvoidsetStudentId(StringstudentId){this.studentId=studentId;}publicStringgetStudentName(){returnstudentName;}publicvoidsetStudentName(StringstudentName){this.studentName=studentName;}publicStringgetStudentSex(){returnstudentSex;}publicvoidsetStudentSex(StringstudentSex){this.studentSex=studentSex;}publicStringgetStudentDormitory(){returnstudentDormitory;}publicvoidsetStudentDormitory(StringstudentDormitory){this.studentDormitory=studentDormitory;}publicStringgetStudentSept(){returnstudentSept;}publicvoidsetStudentSept(StringstudentSept){this.studentSept=studentSept;}}编写export方法:代码如下/***导出数据到excel*@return*@throwsException*/publicStringexport()throwsException{/***如果是从数据库里面取数据,就让studentList=取数据的函数:*就没必要下面的for循环*我下面的for循环就是手动给studentList赋值*/ListstudentList=newArrayListStudent();//学生LIstfor(inti=0;i10;i++){Studentstudent=newStudent();//学生对象student.setStudentId(200908110+i);student.setStudentName(杨波+i);student.setStudentSex(男);student.setStudentDormitory(14-20+i);student.setStudentSept(软件工程系);studentList.add(student);}/*设置表头:对Excel每列取名*(必须根据你取的数据编写)*/String[]tableHeader={学号,姓名,性别,寝室号,所在系};/**下面的都可以拷贝不用编写*/shortcellNumber=(short)tableHeader.length;//表的列数HSSFWorkbookworkbook=newHSSFWorkbook();//创建一个excelHSSFCellcell=null;//Excel的列HSSFRowrow=null;//Excel的行HSSFCellStylestyle=workbook.createCellStyle();//设置表头的类型style.setAlignment(HSSFCellStyle.ALIGN_CENTER);HSSFCellStylestyle1=workbook.createCellStyle();//设置数据类型style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);HSSFFontfont=workbook.createFont();//设置字体HSSFSheetsheet=workbook.createSheet(sheet1);//创建一个sheetHSSFHeaderheader=sheet.getHeader();//设置sheet的头try{/***根据是否取出数据,设置header信息**/if(studentList.size()1){header.setCenter(查无资料);}else{header.setCenter(学生表);row=sheet.createRow(0);row.setHeight((short)400);for(intk=0;kcellNumber;k++){cell=row.createCell(k);//创建第0行第k列cell.setCellValue(tableHeader[k]);//设置第0行第k列的值sheet.setColumnWidth(k,8000);//设置列的宽度font.setColor(HSSFFont.COLOR_NORMAL);//设置单元格字体的颜色.font.setFontHeight((short)350);//设置单元字体高度style1.setFont(font);//设置字体风格cell.setCellStyle(style1);}/**//给excel填充数据这里需要编写**/for(inti=0;istudentList.size();i++){Studentstudent1=(Student)studentList.get(i);//获取student对象row=sheet.createRow((short)(i+1));//创建第i+1行row.setHeight((short)400);//设置行高if(student1.getStudentId()!=null){cell=row.createCell(0);//创建第i+1行第0列cell.setCellValue(student1.getStudentId());//设置第i+1行第0列的值cell.setCellStyle(style);//设置风格}if(student1.getStudentName()!=null){cell=row.createCell(1);//创建第i+1行第1列cell.setCellValue(student1.getStudentName());//设置第i+1行第1列的值cell.setCellStyle(style);//设置风格}//由于下面的和上面的基本相同,就不加注释了if(student1.getStudentSex()!=null){cell=row.createCell(2);cell.setCellValue(student1.getStudentSex());cell.setCellStyle(style);}if(student1.getStudentDormitory()!=null){cell=row.createCell(3);cell.setCellValue(student1.getStudentDormitory());cell.setCellStyle(style);}if(student1.getStudentSept()!=null){cell=row.createCell(4);cell.setCellValue(student1.getStudentSept());cell.setCellStyle(style);}}}}catch(Exceptione){e.printStackTrace();}/**下面的可以不用编写,直接拷贝**/HttpServletResponseresponse=null;//创建一个HttpServletResponse对象OutputStreamout=null;//创建一个输出流对象try{response=ServletActionContext.getResponse();//初始化HttpServletResponse对象out=response.getOutputStream();//response.setHeader(Content-disposition,attachment;filename=+student.xls);//filename是下载的xls的名,建议最好用英文response.setContentType(application/msexcel;charset=UTF-8);//设置类型response.setHeader(Pragma,No-cache);//设置头response.setHeader(Cache-Control,no-cache);//设置头response.setDateHeader(Expires,0);//设置日期头workbook.write(out);out.flush();workbook.write(out);}catch(IOExceptione){e.printStackTrace();}finally{try{if(out!=null){out.close();}}catch(IOExceptione){e.printStackTrace();}}returnnull;}注:最好返回null,否则有可能报错。4.数据的导入(以例子的形式展示)1.jsp页面的编写:在页面上添加如下代码其中action可以自己编写,table标签的内容可以不要。(DEMO页面添加TABLE标签主要是展示导入效果)s:formaction=indexAction!importExcel.actionmethod=postenctype=multipart/form-datatheme=simpletds:filename=excelFileid=excelFilecssStyle=width:160px/s:file//选择导入的文件/tdtdinputtype=submitvalue=导入学生数据//td/s:form//下面是展示导入效果tableth学号/thth姓名/thth性别/thth寝室号/thth所在系/ths:iteratorvalue=stuListtrtds:propertyvalue=studentId//tdtds:propertyvalue=studentName//tdtds:propertyvalue=studentSex//tdtds:propertyvalue=studentDormitory//tdtds:propertyvalue=studentSept//td/tr/s:iterator/table2.strus.xml编写(如果要展示效果,DEMo就编写的返回的页面如下)actionname=indexActionclass=com.dev.iex.action.IndexActionresultname=SUCCESS/index.jsp/result/action3.java代码如下在ind
本文标题:Excel数据在(jsp+ssh)环境下导入导出
链接地址:https://www.777doc.com/doc-4618201 .html