




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、webweb 中使用 POIPOI 导入导出 EXCELEXCEL 文件的例子strutsl.x 的例子,struts2.x 可以参考自己修改l.action 的写法 importjava.io.*;importjava.sql.*;importjava.util.ArrayList;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.poi.hssf.usermodel.*;importorg.apache.struts.action
2、.*;importorg.apache.struts.upload.FormFile;mons.beanutils.BeanUtils;publicclassAction/*/publicActionForwardgetDownload(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequestrequest,HttpServletResponseresponse)throwsExceptionFormfm=(Form)actionForm;/Excel 文件存放在服务器的相对路径下StringoutputFile=re
3、quest.getRealPath(/tmp/Excel.xls);try/创建新的 Excel 工作簿HSSFWorkbookworkbook=newHSSFWorkbook();/在 Excel 工作簿中建一工作表HSSFSheetsheet=workbook.createSheet(Sheet1);/设置单元格格式(文本)HSSFCellStylecellStyle=workbook.createCellStyle();cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat();/在索引 0 的位置创建行(第一行)HSSFRowro
4、w=sheet.createRow(short)0);*把数据库中的字段导入到*/Excel,并生成 Excel 文档HSSFCellcelll=row.createCell(short)0);/第一歹 UHSSFCellcell2=row.createCell(short)1);HSSFCellcell3=row.createCell(short)2);/定义单元格为字符串类型cell1.setCellType(HSSFCell.CELL_TYPE_STRING);cell2.setCellType(HSSFCell.CELL_TYPE_STRING);cell3.setCellType(H
5、SSFCell.CELL_TYPE_STRING);cell1.setEncoding(HSSFCell.ENCODING_UTF_16);cell2.setEncoding(HSSFCell.ENCODING_UTF_16);cell3.setEncoding(HSSFCell.ENCODING_UTF_16);/在单元格中输入数据cell1.setCellValue(姓名);cell2.setCellValue(性另 1J);cell3.setCellValue(年龄)Connectionconnection=session.connection();Stringsql=Selectt.n
6、ame,t.sex,t.agefromtabletwheret.sex=?;tryPreparedStatementps=connection.prepareStatement(sql);ps.setString(1,fm.getSex();/传入查询条件ResultSetrs=ps.executeQuery();/查询结果存入 mit();/执行 SQLwhile(rs.next()/设置 j 行从第二行开始intj=1;row=sheet.createRow(short)j);/设置 i 列从第二列开始for(inti=1;i=3;i+)HSSFCellcell=row.createCel
7、l(short)(i-1);/设置单元格格式cell.setCellStyle(cellStyle);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellValue(rs.getString(i);)j+;)request.setAttribute(message,文件生成成功!);catch(SQLExceptione)request.setAttribute(message,创建文件失败!);e.printStackTrace();/删除路径下同
8、名的 Excel 文件Filepath=newFile(outputFile);path.delete();/新建一输出文件流FileOutputStreamfOut=newFileOutputStream(outputFile);/把相应的 Excel 工作簿存盘workbook.write(fOut);/操作结束,关闭文件fOut.flush();fOut.close();/该处如果 Excel 过大会影响效率, 谁有好的想法可以提出来参考(不过从页面下载完后就会清空)request.getSession().setAttribute(Download,outputFile);catch(
9、Exceptionioexception)request.setAttribute(message,创建文件失败!);returnactionMapping.findForward(outJSP);returnactionMapping.findForward(outJSP);*/publicActionForwardgetUpload(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequestrequest,HttpServletResponseresponse)throwsException/获取 excel 文件F
10、ormfm=(Form)actionForm;FormFileformfile=fm.getUploadfile();InputStreaminputstream=formfile.getInputStream();fm.clear();/清空Sessionsession=HibernateSession.currentSession();ArrayListlist=newArrayList();intinput=0;/导入记数Stringname=null;Stringsex=null;Stringage=null;/* ,*从 Excel 文件中读取数据,并导入到数据库中try(通过得到的
11、文件输入流 inputstream 创建一个 HSSFWordbook 对象HSSFWorkbookhssfworkbook=newHSSFWorkbook(inputstream);HSSFSheethssfsheet=hssfWorkbook.getSheetAt(0);/第一个工作表HSSFRowhssfrow=hssfsheet.getRow(0);/第一行遍历该表格中所有的工作表,i 表示工作表的数量 getNumberOfSheets 表示工作表的总数for(inti=0;ihssfworkbook.getNumberOfSheets();i+)hssfsheet=hssfwork
12、book.getSheetAt(i);遍历该行所有的行,j 表示彳亍数 getPhysicalNumberOfRows 行的总数for(intj=1;jhssfsheet.getPhysicalNumberOfRows();j+)hssfrow=hssfsheet.getRow(j);判断是否还存在需要导入的数据 if(hssfrow=null)System.out.println( 这 里 已 没 有 数 据 , 在 第 +i+ 列 , 第 +j+ 彳f);break;/*/*将 EXCEL 中的第 j 行,第一列的值才 1 入到实例中*/if(hssfrow.getCell(short)0
13、)=null)name=;elseif(hssfrow.getCell(short)0).getCellType()=0)name=newDouble(hssfrow.getCell(short)0).getNumericCellValue().toString();/如果 EXCEL 表格中的数据类型为字符串型 elsename=hssfrow.getCell(short)0).getStringCellValue().trim();/*/*将 EXCEL 中的第 j 行,第二列的值才 1 入到实例中*/姓名if(hssfrow.getCell(short)1)=null)sex=;else
14、if(hssfrow.getCell(short)1).getCellType()=0)sex=newDouble(hssfrow.getCell(short)1).getNumericCellValue().toString();/如果 EXCEL 表格中的数据类型为字符串型 elsesex=hssfrow.getCell(short)1).getStringCellValue().trim();/*/*将 EXCEL 中的第 j 行,第三列的值才 1 入到实例中*/姓名if(hssfrow.getCell(short)1)=null)age=;elseif(hssfrow.getCell(
15、short)1).getCellType()=0)age1).getNumericCellValue().toString();如果 EXCEL 表格中的数据类型为字符串型elseage=hssfrow.getCell(short)1).getStringCellValue().trim();name=name.trim();sex=sex.toUpperCase();if(name.equals()error.setName(name);error.setMessage(姓名不能为空);list.add(error);continue;elsefm.setName(name);fm.setS
16、ex(sex);fm.setAge(age);session.save(fm);导入成功加 1input+;session.saveObjs(list.toArray();catch()2.Form 的写法 importorg.apache.struts.action.ActionForm;importorg.apache.struts.upload.FormFile;publicclassFormextendsActionForm/上传的文件privateFormFile_flddo;publicvoidsetUploadfile(FormFileformfile)_flddo=formfile;newDouble(hssfrow.getCell(short)publicFormFilegetUploadfile()return_flddo;publicvoidclea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西南宁市良庆区玉洞街道办事处社区公益性岗位劳动保障协管员招聘1人模拟试卷及答案详解(夺冠)
- 2025湖北省红文旅游投资集团有限公司招聘4人考前自测高频考点模拟试题及答案详解(全优)
- 2025年合肥长丰县下塘镇招聘村(社区)后备干部12人模拟试卷完整答案详解
- 2025福建三明市教育局华东师范大学附属三明中学招聘紧缺急需专业工作人员18人模拟试卷完整答案详解
- 2025年温岭市公开选调公务员32人模拟试卷及答案详解(典优)
- 2025黑龙江哈尔滨市木兰县公安局招聘警务辅助人员54人模拟试卷及1套参考答案详解
- 2025年两性离子聚合物泥浆处理剂项目合作计划书
- 2025年烟台市总工会所属事业单位卫生类岗位公开招聘工作人员(1人)考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年三环集团校园大使招聘考前自测高频考点模拟试题及参考答案详解
- 2025年福建省福州市水路运输事业发展中心招聘1人模拟试卷及答案详解参考
- 2025年中级制图员《理论知识》考试真题(含新版解析)
- 广东省2025年度初级注册安全工程师职业资格考试金属非金属矿山安全复习题及答案
- 小学教师网络信息安全管理规范
- 惊恐障碍课件
- 银行招聘考试题目及答案
- 十二经络课件
- Starter Unit 3 Welcome 单元测试(含答案)人教版(2024)七年级英语上册
- 同济大学《高等数学》第七版上、下册答案(详解)
- 员工花名册表
- GB/T 7113-2003绝缘软管定义和一般要求
- GB/T 4754-2002国民经济行业分类
评论
0/150
提交评论