`
wolongshan
  • 浏览: 68375 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

jsp页面处理excel表内容

    博客分类:
  • Java
阅读更多

来源:未知 

  

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>

分享到:
评论

相关推荐

    Servlet与JSP核心编程第2版

    11.9 使用scriptlet将jsp页面的某些部分条件化 11.10 使用声明 11.11 声明的例子 11.12 使用预定义变量 11.13 jsp表达式、scriptlet和声明的比较 第12章 控制所生成的servlet的结构:jsppage指令 12.1 ...

    springMVC poi解析ajax上传excel文件,返回json对象\list数组

    此项目是基于springMVC实现的,基本流程为从前台jsp页面使用Ajax文件上传导入excel文件(.xls(97-03)/.xlsx(07以后)),传到后台controller调用相应工具类解析后返回指定参数做后续处理. 1. POIUtil.java工具类 解析...

    ext导出excel

    jsp页面使用ext ajax,导出excel利用poi框架。

    Jsp通用范例开发金典光盘源代码

    内容包括HTML语句的基本语法,JSP指令与动作,JSP内部对象,JavaScript脚本在JSP编程中的使用,JavaBean在JSP中的基本概念及其属性与方法,数据库的连接方式,绘图方法,实现邮件的收发功能,打印Word、Excel和PDF...

    jsp最详细教程 最容易入门

    第1 章 JSP 简介................................................................................10 1.1 什么是JSP........................................10 1.2 JSP 页面.....................................

    java版Excel文件导入数据库源代码

    java版Excel文件导入数据库源代码 ...CLOB表字段:clob//text表中clob字段的列名,clob字段的插入需要单独处理 需导入的clob列:5//参考clob字段在excel中的列 5.点击"导入"即可把你编辑好的excel文件导入数据库

    jsp九大内置对象

     当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,...

    基于JSP的在线考试系统

    在线考试管理系统(Web版 全套源码 安装即用) &lt;br&gt;本系统是一个完整的JSP-JAVA应用项目,合适有初步JSP编程经验的朋友们提高和学习之用。 &lt;br&gt;系统含全套源码,合适朋友们在此基础上举一反三结合实际开发出优秀...

    JSP+SQL基于JSP的学生信息管理系统(源代码+论文+答辩PPT)

    本系统利用B/S模式,基于JSP技术进行开发,并采用SSH三次框架配合设计代码实现,具体研究阐释如下。 2.1用户信息管理模块 该模块重点显示用户的基本信息。用户登录后,对该用户执行判断处理,正确通过后可获取并显示...

    table2csv.js

    页面数据用js导出excel,在IE可以用new 一个ActiveXObject("Excel.Application" )对象来处理,但是需要IE启动activeX,不然运行不了,而且只能在IE里才能运行,不能兼容其他浏览器。所以要在web前端把table生成excel...

    java_jsp项目源码_+SQL网站流量统计管理系统(源代码+论文).rar

    6. 数据导出:系统支持将统计数据导出为Excel、CSV等格式,方便用户进行进一步的数据处理和分析。 该系统采用模块化设计,具有良好的扩展性,可以根据用户需求进行二次开发定制,满足不同场景下的使用需求。同时,...

    Vs2005下GridView演示多层Demo源码.rar

    WebFacade:页面逻辑层,负责处理页面逻辑 Business:逻辑层,负责处理业务逻辑 Components:公共组件层,包含公共对象,程序配置类也可放到此层中 DataProvider:数据库处理层,负责与数据库通讯。 安装方法:...

    风越ASP代码生成器FireAspCreatorv2.9.rar

    《风越代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架,基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索页面。通过界面模板与代码模板管理功能,可自定义...

    风越.net代码生成器 v3.5

    09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的...

    风越asp代码生成器 V3.5

    09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的...

    JavaScript完全自学宝典 源代码

    \testJson\WebRoot\orderInfo.jsp 录入商品信息的JSP页面。 第21章(\c21) 示例描述:介绍Prototype框架。 21.1.html 使用Prototype的$()方法获取指定元素。 21.2.html 使用Prototype的$A()方法获取...

    Java_Web开发实战1200例第1卷.part2

    第21章 JSP操作Excel 775 21.1 应用JXL组件操作Excel 776 21.2 应用POI组件操作Excel 807 第22章 报表与打印 829 22.1 Web打印 830 22.2 利用Word打印报表 833 22.3 利用Excel打印报表 838 22.4 应用WebBrowser+CSS...

    Java_Web开发实战1200例第1卷.part3

    第21章 JSP操作Excel 775 21.1 应用JXL组件操作Excel 776 21.2 应用POI组件操作Excel 807 第22章 报表与打印 829 22.1 Web打印 830 22.2 利用Word打印报表 833 22.3 利用Excel打印报表 838 22.4 应用WebBrowser+CSS...

    风越.Net代码生成器 [FireCode Creator] V1.3 精简版

    字段描述批量格式化,可从字段名、描述生成,加强英文字符处理 列表、搜索页面隔行颜色、点击变色设置 根据数据库字段允许空值状态自动设置输入检测代码 页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置...

Global site tag (gtag.js) - Google Analytics