java使用POI创建Excel工作薄

来源:互联网 发布:高句丽最大版图知乎 编辑:程序博客网 时间:2024/04/27 23:49

   最近做的一个项目中涉及到了在程序中生成excel文档的功能,以前也做过。在做的这些项目中使用的方法很多,几乎每一次 方法都不一样。最简单的是直接用jsp把jsp的文件响应的内容类型给改成application/x-msexcel,这样来对付那些小而简单的excel文件是没有什么问题了,并且还方便快捷。

第二种用常用的也是比较流行的当然是Java excel API了,jxl.jar可以帮助我们完成任务。

第三种就是今天用到的POI。POI是Apache jakarta的子项目,使用简单方便,对中文支持也非常好,功能比较强大。下面是一个利用它创建excel的小例子:(当然,你要首先导入POI包)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="org.apache.poi.hssf.usermodel.*,java.io.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'poiExcel.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    This is my JSP page. <br>
    <%
   
      //创建新的Excel工作簿
      HSSFWorkbook workbook = new HSSFWorkbook();
     
      //在excel中新建一个工作表,起名字为jsp
      HSSFSheet sheet = workbook.createSheet("JSP");
     
      //创建第一行
      HSSFRow row = sheet.createRow(0);
      //创建第一列
      HSSFCell cell = row.createCell((short)0);
      //定义单元格为字符串类型
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      //在单元格中输入一些内容
      cell.setCellValue("作者");
      //创建第二列
      cell = row.createCell((short)1);
      //定义单元格为字符串类型
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      //在单元格中输入一些内容
      cell.setCellValue("编辑");
      //文件存放位置
      String filename = application.getRealPath("/")+"test.xls";
      //新建一输出流
      FileOutputStream fout = new FileOutputStream(filename);
      //存盘
      workbook.write(fout);
     
      fout.flush();
      //结束关闭
      fout.close();
   
      out.println("excel 文件生成,存放在<br>"+filename);
     %>
  </body>
</html>
下面是利用poi来读取excel的小例子:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="org.apache.poi.hssf.usermodel.*,java.io.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'readExcel.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    This is my JSP page. <br>
    <%
   
    //读取excel
    String filename = application.getRealPath("/")+"test.xls";
   
    HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filename));
    //按名引用excel工作表
    HSSFSheet sheet = workbook.getSheet("JSP");
    //也可以用以下方式来获取excel的工作表,采用工作表的索引值
    //HSSFSheet sheet = workbook.getSheetAt(0);
    HSSFRow row = sheet.getRow(0);
    HSSFCell cell = row.getCell((short)0);
    //打印读取值
    out.println(cell.getStringCellValue()+"&nbsp;&nbsp;&nbsp;");
    cell = row.getCell((short)1);
    out.println(cell.getStringCellValue()+"&nbsp;&nbsp;&nbsp;");
   
     %>
   
  </body>
</html>

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 教师资格证申请表打不开怎么办 怎么办appstore换到日本 电脑内存太小怎么办 win10声音卡顿怎么办 录音播放卡顿怎么办 笔记本电脑玩dnf卡怎么办 龙之谷约惠码被删了怎么办 天涯明月刀马没有了怎么办 icloud照片无法同步怎么办 ipad不能下载app怎么办 ipad屏幕孔进水怎么办 ipad无法验证登录怎么办 dnf电脑配置低怎么办 淘宝直播粉丝不够怎么办 电脑页面显示不全怎么办 脸上发痒长痘怎么办 扣扣魔性表情泡泡消失怎么办 脚起小泡泡很痒怎么办 孕妇脚痒起水泡怎么办 孕妇手脚起湿疹怎么办 嘴巴破皮了怎么办 小便刺痛阴唇红肿怎么办 集成墙面挂照片怎么办 苹果电脑网页游戏打不开怎么办 苹果6plus发热怎么办 玩手游手机太卡怎么办 苹果七发烫厉害怎么办 苹果手机延迟高怎么办 王者荣耀总是卡怎么办 王者荣耀卡屏怎么办 王者荣耀网络延迟怎么办 荣耀8手机卡了怎么办 荣耀v10有点卡怎么办 荣耀10有点卡怎么办 8g内存吃鸡会崩怎么办 玩看门狗很卡怎么办 拼多多人数不够怎么办 玩cf想吐怎么办 玩手机头晕恶心怎么办 玩手机头疼恶心怎么办 看手机想吐怎么办