网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > JSP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.高效的jsp分页查询.
.JSP中文乱码问题解决方法小结.
.详细的jsp分页(oracle+jsp+apac.
.JSP应用语法详解大全 (3).
.tomcat+mysql使用utf-8.
.JSP实现浏览器关闭cookies情况下.
.在JSP页面中实现检索数据的分页显.
.JSP标签库介绍.
.JSP中可能会碰到的问题解答.
.困扰JSP的一些问题与解决方法.
.在JSP环境中如何来配置和使用fck.
.新手看招:JSP中表单数据存储的通.
.修改MYSQL数据库,数据表,字段的编.
.教你轻松应对JSP连接MySQL数据库.
.基于JDBC的数据库连接池技术研究.
.JS+JSP+JAVABEAN树型列表的实现.
.JSP和JSF双剑合并 打造完美Web应.
.JSP应用的安全问题.
.深入讲解提升JSP应用程序的七个实.
.用JSTL实现JSP应用程序快速开发.

jsp页面显示数据导出到excel表中

发表日期:2007-1-26


Excel报表的方法,一个过於简单,一个只能用於window平台(因为使用jdbc-odbc bridge),且无法使用到Excel内部的各种公式或是方法,因此,今天介绍一个apache出的元件叫POI,它可以在UNIX或window平台处理word或Excel档案,而不需要依靠window的com,并且可设定储存格格式、列印格式等等;今天我来介绍其中有关资料读取、新增、修改及删除的功能,若各位网友研究好其他的功能,麻烦Email给我(ljj@mlc.edu.tw),分享给大家!
一、需要用的档案:jakarta-poi-1.8.0-dev-20020917.jar
 几乎每天都有1.8.0的最新版(但非正式版),正式的版本是1.5.0
 http://jakarta.apache.org/builds/jakarta-poi/nightly/
 将档案复制到classpath所指到的地方
二、有兴趣的朋友可以参考
  http://jakarta.apache.org/poi/
三、先建立一个叫做book1.xls的Excel档,内容如下
----------------------------------
项目  单价  数量   合计
CPU   7000  5    35000
硬碟  2500  2    5000
记忆体 1600  3    4800
----------------------------------
其中合计的栏位是设定公式,单价*数量
 
四、资料读取範例
<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %>
<%@ page import="org.apache.poi.poifs.filesystem.*,org.apache.poi.hssf.usermodel.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=MS950">
<title>读取Excel档案</title>
</head>
<body>
<table border="1" width="100%">
<%
  FileInputStream finput = new FileInputStream(application.getRealPath("/")+"book1.xls" );
  //设定FileINputStream读取Excel档
  POIFSFileSystem fs = new POIFSFileSystem( finput );
  HSSFWorkbook wb = new HSSFWorkbook(fs);
  HSSFSheet sheet = wb.getSheetAt(0);
  //读取第一个工作表,宣告其为sheet
  finput.close();
  HSSFRow row=null;
  //宣告一列
  HSSFCell cell=null;
  //宣告一个储存格
  short i=0;
  short y=0;
  //以巢状迴圈读取所有储存格资料
  for (i=0;i<=sheet.getLastRowNum();i++)
  {
    out.println("<tr>");
    row=sheet.getRow(i);
    for (y=0;y<row.getLastCellNum();y++)
    {
       cell=row.getCell(y);
       out.print("<td>");
      
       //判断储存格的格式
       switch ( cell.getCellType() )
       {
           case HSSFCell.CELL_TYPE_NUMERIC:
               out.print(cell.getNumericCellValue());
               //getNumericCellValue()会回传double值,若不希望出现小数点,请自行转型为int
               break;
           case HSSFCell.CELL_TYPE_STRING:
               out.print( cell.getStringCellValue());
               break;
           case HSSFCell.CELL_TYPE_FORMULA:
               out.print(cell.getNumericCellValue());
               //读出公式储存格计算後的值
               //若要读出公式内容,可用cell.getCellFormula()
               break;
           default:
               out.print( "不明的格式");
               break;
       }
       out.println("</td>");
    }
    out.println("</tr>");
  }
%>
</table>
</body>
</html>
 
五、资料新增範例
<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %>
<%@ page import="org.apache.poi.poifs.filesystem.*,org.apache.poi.hssf.usermodel.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=MS950">
<title>插入资料至Excel档案</title>
</head>
<body>
<%
  FileInputStream finput = new FileInputStream(application.getRealPath("/")+"book1.xls" );
  //设定FileINputStream读取Excel档
  POIFSFileSystem fs = new POIFSFileSystem( finput );
  HSSFWorkbook wb = new HSSFWorkbook(fs);
  HSSFSheet sheet = wb.getSheetAt(0);
  //读取第一个工作表,宣告其为sheet
  finput.close();
  HSSFRow row=null;
  //宣告一列
  HSSFCell cell=null;
  //宣告一个储存格
  short i=4;
  row=sheet.createRow(i);
  //建立一个新的列,注意是第五列(列及储存格都是从0起算)
  cell=row.createCell((short)0);
  cell.setEncoding(HSSFCell.ENCODING_UTF_16);
  //设定这个储存格的字串要储存双位元
  cell.setCellValue("显示卡");
  cell=row.createCell((short)1);
  cell.setCellValue(1700);
  cell=row.createCell((short)2);
  cell.setCellValue(8);
  cell=row.createCell((short)3);
  //设定这个储存格为公式储存格,并输入公式
  cell.setCellFormula("B"+(i+1)+"*C"+(i+1));
  try
  {
    FileOutputStream fout=new FileOutputStream(application.getRealPath("/")+"book1.xls");
    wb.write(fout);
    //储存
    fout.close();
    out.println("储存成功<a href='book1.xls'>book1.xls</a>");
  }
  catch(IOException e)
  {
    out.println("产生错误,错误讯息:"+e.toString());
  }
%>
</body>
</html>
 
六、资料删除、修改範例
<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.io.*" %>
<%@ page import="org.apache.poi.poifs.filesystem.*,org.apache.poi.hssf.usermodel.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=MS950">
<title>删除、修改资料至Excel档案</title>
</head>
<body>
<%
  FileInputStream finput = new FileInputStream(application.getRealPath("/")+"book1.xls" );
  //设定FileINputStream读取Excel档
  POIFSFileSystem fs = new POIFSFileSystem( finput );
  HSSFWorkbook wb = new HSSFWorkbook(fs);
  HSSFSheet sheet = wb.getSheetAt(0);
  //读取第一个工作表,宣告其为sheet
  finput.close();
  HSSFRow row=null;
  //宣告一列
  HSSFCell cell=null;
  //宣告一个储存格
  row=sheet.getRow((short)4);
  //取出第五列
  if (row!=null)
     sheet.removeRow(row);
  //先侦测第五列存不存在,若在的话将第五列删除
  row=sheet.getRow((short)3);
  //取出第四列
  cell=row.getCell((short)2);
  //取出第三个储存格
  cell.setCellValue(7);
  //设定该储存格值为7
  cell=row.getCell((short)3);
  cell.setCellFormula(cell.getCellFormula());
  //上两行为取出公式储存格,并重新计算(因为刚才更新过计算公式的值)
  //如果不做,公式计算後的值不会更新
  try
  {
    FileOutputStream fout=new FileOutputStream(application.getRealPath("/")+"book1.xls");
    wb.write(fout);
    //储存
    fout.close();
    out.println("储存成功<a href='book1.xls'>book1.xls</a>");
  }
  catch(IOException e)
  {
    out.println("产生错误,错误讯息:"+e.toString());
  }
%>
</body>
</html>

http://blog.csdn.net/gqm1982/archive/2007/01/25/1493229.aspx

上一篇:JSP数据导出到EXCEL简便方法 人气:6178
下一篇:数据库的相关操作:如连接、查询、添加、删除、修改、分页显示 人气:6112
浏览全部jsp的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐