JAVA使用jxl写excel

一、jxl.jar简介

二、jxl.jar下载、安装、使用

三、jsp页面中使用jxl写excel

 

一、jxl简介

  Java Excel是一开放源码项目,Java开发人员通过它可以对excel文档进行读取、创建、更新等操作。因为jxl是使用java编写的,所以使用该 API非Windows操作系统也可以正常的处理Excel数据表。并且我们在Web应用中可以通过JSP、 Servlet来调用API实现对Excel数据表的访问。
  提供以下功能:
    * 从Excel 9597、2000等格式的文件中读取数据;
    
* 读取Excel公式(可以读取Excel 97以后的公式);
    
* 生成Excel数据表(格式为Excel 97);
    
* 支持字体、数字、日期的格式化;
    
* 支持单元格的阴影操作,以及颜色操作;
    
* 修改已经存在的数据表;
    
* 能够读取图表信息

二、jxl下载、安装、使用

  jxl下载:因为网络上很多下载链接,这里就不一一列举了。 

  安装与使用:将下载下来的jxl文件解压缩之后,找到jxl.jar包,所谓安装有两种方式,一是将jxl.jar包放到环境的公共目录,这样使用此环境的所有项目都可以使用这个包,这样做的缺点是,但如果把一个项目移到其他服务器上,还必须要将jxl.jar包在新服务器上配置;另一种方法是那个项目需要使用jxl.jar包,便将jxl.jar包烤到此项目的lib目录下就可以,笔者在使用其他所有的jar包时都是这样的使用的,也许只是一种习惯把。

三、jsp中使用jxl写excel

以下jsp文件是一个生产制造业的查询页面,在查询出数据是可以点击导出excel按钮将数据导出到excel文档中,这只是笔者对jxl比较浅显、粗陋的认识,拿出来未免有点贻笑大方,如果纯粹是浪费您的时间,请一笑而过吧。

  1. <%
  2. /********************************************
  3.  * 文件名称:index.jsp
  4.  * 功能描述:查询数据、并导出到excel
  5.  * 创建日期:2008-8-25
  6.  * @author:wlq1983
  7.  * @version V1.0
  8. *********************************************/
  9. %>
  10. <%@page language="java"%>
  11. <%@page contentType="text/html;charset=GB2312" %>
  12. <!--以下import可以用到哪个类,导哪个类-->
  13. <%@page import="java.util.*"%>
  14. <%@page import="jxl.*"%>
  15. <%@page import="java.io.*"%>
  16. <%@page import="java.lang.*"%>
  17. <%@page errorPage="../common/ErrorPage.jsp"%>
  18. <html>
  19. <!--没直接关系的代码省略-->
  20. <form name="thisform" method="post">
  21. <!--需要说明的是好像这块jxl代码必须要放到form中才有用(时间太长具体是不是记不清楚了)-->     
  22. <%
  23. //strFullPath+strPath获得excel文件的绝对定位
  24. String strFullPath = getServletContext().getRealPath("excel"); 
  25. String strPath = strFullPath +"//";
  26. //randomValue获取随机数作为excel文档的文件名,如果觉得随机数还有重复的可能,
  27. //可以用时间加数据的形式得到文件名,例如现在是2008-08-25 21:50:55,
  28. //那么可以取文件名20080825215055这样基本上就不会重复了
  29. String randomValue = String.valueOf(Math.round(Math.random() * 100)); 
  30. //jxl既可以读本地文件系统的一个文件(.xls),也可以从输入流中读取Excel数据表。
  31. //读取Excel数据表的第一步是创建Workbook(术语:工作薄)
  32. //下列语句就可以从输入流中读取excel数据表,并且创建表格sheet1
  33. jxl.write.WritableWorkbook wwb =Workbook.createWorkbook(new File(strPath+ randomValue + ".xls"));
  34. jxl.write.WritableSheet ws=wwb.createSheet("sheet1",0);
  35. //以下代码就是生成excel表头的代码
  36. jxl.write.Label labelC=new jxl.write.Label(0,0,"订单号");
  37. ws.addCell(labelC);
  38. labelC=new jxl.write.Label(1,0,"物料号");
  39. ws.addCell(labelC);
  40. labelC=new jxl.write.Label(2,0,"需求数量");
  41. ws.addCell(labelC);
  42. labelC=new jxl.write.Label(3,0,"完工数量");
  43. ws.addCell(labelC);
  44. labelC=new jxl.write.Label(4,0,"生产日期");
  45. ws.addCell(labelC);
  46. %>
  47.   <!--省掉table等代码-->
  48.   <tr>
  49.     <!--显示在jsp页面上表头代码省略-->
  50.   </tr>
  51.   <!--省略处理代码,以下代码是在数据库中有查询数据时的代码-->
  52. <
  53.   //objResult.getRows()相当于rd.next的长度,这里套用自写的函数
  54.   //objResult.getCell(1,r)的作用是循环取结果值
  55.   for(int r=0;r<objResult.getRows();r++) {
  56. %>
  57.   <tr>
  58.     <!--数据循环显示在jsp页面上的代码省略-->
  59.   </tr>
  60. <%
  61. //以下”0,1,2,3,4“代表列,
  62. //objResult.getCell(1,r)是获取到的值,如果不明白可以用固定值代替他们,
  63. //然后导出一个excel表格就知道了。
  64. labelC=new jxl.write.Label(0,r+1,objResult.getCell(1,r));
  65. ws.addCell(labelC);
  66. labelC=new jxl.write.Label(1,r+1,objResult.getCell(2,r));
  67. ws.addCell(labelC);
  68. labelC=new jxl.write.Label(2,r+1,objResult.getCell(3,r));
  69. ws.addCell(labelC);
  70. labelC=new jxl.write.Label(3,r+1,objResult.getCell(4,r));
  71. ws.addCell(labelC);
  72. labelC=new jxl.write.Label(4,r+1,objResult.getCell(5,r));
  73. ws.addCell(labelC);
  74. %>
  75. <% } %>
  76. <%
  77. //千万不能忘记下面两行,否则是得不到excel文件内容的。
  78. wwb.write();
  79. wwb.close();
  80. %>
  81. 右键<a href="../excel/<%out.print(randomValue);%>.xls">另存为</a>保存报表为excel表
  82. </form>


全文结束。

你可能感兴趣的:(java,jsp,servlet,服务器,Excel,文档)