首页 / JAVA / java导入导出excel表格
java导入导出excel表格
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java导入导出excel表格,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6043字,纯文字阅读大概需要9分钟。
内容图文
![java导入导出excel表格](/upload/InfoBanner/zyjiaocheng/1328/72744aa4d9844ff2afe60cf953739a51.jpg)
这里是通过jxl实现对excel的导入导出的,可以动态创建本地excel,读取本地excel,写入excel。
只需导入jxl.jar包即可;
基本操作:
一:创建本地excel:
//创建EXECEL,添加数据,通过输出流输出到客户端下载 public static void createExecel(HttpServletRequest request,HttpServletResponse response,String fileName){ OutputStream os=null; try { os=response.getOutputStream(); response.reset(); response.setCharacterEncoding("utf-8"); response.setHeader("Content-Disposition", "attachment;filename="+fileName); response.setContentType("application/msexcel"); //创建工作薄 WritableWorkbook wwb=Workbook.createWorkbook(os); //创建新的一页 WritableSheet sheet=wwb.createSheet("First sheet", 0); //创建要显示的内容,第一个参数为列,第二个参数为行,第三个参数为内容 Label xuexiao=new Label(0,0,"学校"); sheet.addCell(xuexiao); Label zhuanye=new Label(1,0,"专业"); sheet.addCell(zhuanye); Label xuexiao1=new Label(0,1,"清华大学"); sheet.addCell(xuexiao1); Label zhuanye1=new Label(1,1,"软件工程"); sheet.addCell(zhuanye1); //把创建的内容写入输出流,并关闭 wwb.write(); wwb.close(); os.close(); } catch (Exception e) { e.printStackTrace(); } }
二:创建带有 样式的EXECEL
//创建带有 样式的EXECEL,添加数据,通过输出流输出到客户端下载 public static void createStyleExecel(HttpServletRequest request,HttpServletResponse response,String fileName){ OutputStream os=null; try { os=response.getOutputStream(); response.reset(); response.setCharacterEncoding("utf-8"); response.setHeader("Content-Disposition", "attachment;filename="+fileName); response.setContentType("application/msexcel"); //创建工作薄 WritableWorkbook wwb=Workbook.createWorkbook(os); //创建新的一页 WritableSheet sheet=wwb.createSheet("First sheet", 0); //构造表头,合并单元格,第一个参数是起始列,第二个参数是起始行,第三个参数是终止列,第四个参数是终止行 sheet.mergeCells(0, 0, 1, 0); //设置字体为Arial,字号为10,黑体显示 WritableFont wf=new WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD); //生成一个单元格样式控制对象 WritableCellFormat wcf=new WritableCellFormat(wf); //单元格的内容水平方向上居中 wcf.setAlignment(jxl.format.Alignment.CENTRE); //单元格的内容垂直方向上居中 wcf.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); //创建要显示的内容,第一个参数为列,第二个参数为行,第三个参数为内容 Label title=new Label(0,0,"学校专业信息表",wcf); //设置第一行的高度 sheet.setRowView(0,600,false); sheet.addCell(title); WritableFont wf1=new WritableFont(WritableFont.ARIAL); wf1.setColour(Colour.GOLD);//设置字体颜色 WritableCellFormat wcf1=new WritableCellFormat(wf1); Label fd=new Label(0,1,"学校",wcf1); sheet.addCell(fd); Label be=new Label(1,1,"专业",wcf1); sheet.addCell(be); Label rq=new Label(0,2,"清华大学"); sheet.addCell(rq); Label rq1=new Label(1,2,"软件工程"); sheet.addCell(rq1); //把创建的内容写入输出流,并关闭 wwb.write(); wwb.close(); os.close(); } catch (Exception e) { e.printStackTrace(); } }
三:创建excel,从数据库读取数据写入excel
//创建EXECEL,从数据库导入数据,输出到客户端下载 public static void createExecelData(HttpServletRequest request,HttpServletResponse response,StudentService studentService,String fileName){ OutputStream os=null; try { os=response.getOutputStream(); response.reset(); response.setCharacterEncoding("utf-8"); response.setHeader("Content-Disposition", "attachment;filename="+fileName); response.setContentType("application/msexcel"); //创建工作薄 WritableWorkbook wwb=Workbook.createWorkbook(os); //创建新的一页 WritableSheet sheet=wwb.createSheet("First sheet", 0); //创建要显示的内容,第一个参数为列,第二个参数为行,第三个参数为内容 Label studentId=new Label(0,0,"ID"); sheet.addCell(studentId); Label studentName=new Label(1,0,"姓名"); sheet.addCell(studentName); List<Student> students=studentService.findByHq("from Student s", null); for(int i=0;i<students.size();i++){ studentId=new Label(0,i+1,students.get(i).getStudentId()+""); studentName=new Label(1,i+1,students.get(i).getStudentName()); sheet.addCell(studentId); sheet.addCell(studentName); } //把创建的内容写入输出流,并关闭 wwb.write(); wwb.close(); os.close(); } catch (Exception e) { e.printStackTrace(); } }
四:读取本地EXECEL文件数据
//读取本地EXECEL文件数据 public static void readExcel(StudentService studentService,String filePath){ //创建只读Workbook对象 Workbook wb=null; try { InputStream is=new FileInputStream(filePath); wb=Workbook.getWorkbook(is); //创建sheet表,sheet下标从0开始 Sheet sheet=wb.getSheet(0); //获取sheet表的总列数 int cols=sheet.getColumns(); System.out.println("列数:"+cols); //获取sheet表的总行数 int rows=sheet.getRows(); System.out.println("行数:"+rows); //遍历每个单元格 List<Student> students=new ArrayList<Student>(); for(int i=1;i<rows;i++){ Student s=new Student(); for(int j=0;j<cols;j++){ Cell cell=sheet.getCell(j,i); System.out.println((i+","+j+":")+cell.getContents()); if(j==0){ s.setStudentId(Integer.valueOf(cell.getContents())); }else{ s.setStudentName(cell.getContents()); } } students.add(s); } studentService.saveBatch(students); System.out.println("batch ok"); } catch (Exception e) { e.printStackTrace(); } }
五 :实现通过jsp导入数据,到数据库:
分两步实现,先把文件上传到服务器本地,再读取本地excel文件
<form action="impExcel" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="导入"> </form>
public String executeImport(){ HttpServletRequest request=ServletActionContext.getRequest(); HttpServletResponse response=ServletActionContext.getResponse(); //首先将文件上传至服务器 f:\\temp目录 InputStream is=null; OutputStream os=null; try { System.out.println("in upload"); is=new FileInputStream(file); path="F:\\temp\\"+fileFileName; os=new FileOutputStream(new File(path)); byte[] b=new byte[1024]; int num; while((num=is.read(b))!=-1){ os.write(b, 0, num); os.flush(); } } catch (Exception e) { e.printStackTrace(); }finally{ try { os.close(); is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //从服务器读取Execel ExcelUtil.readExcel(studentService,"F:\\temp\\"+fileFileName); System.out.println("导入 execel ok"); return "all"; }
六 导出excel
<a href="expExcel">导出</a>
public String executeExport(){ HttpServletRequest request=ServletActionContext.getRequest(); HttpServletResponse response=ServletActionContext.getResponse(); // ExcelUtil.createExecel(request, response,fileName); ExcelUtil.createExecelData(request, response,studentService,fileName); // ExcelUtil.createStyleExecel(request, response,fileName); System.out.println("导出 execel ok"); return null; }
原文:http://blog.csdn.net/liangwenmail/article/details/48085877
内容总结
以上是互联网集市为您收集整理的java导入导出excel表格全部内容,希望文章能够帮你解决java导入导出excel表格所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。