问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jsp如何利用POI直接生成Excel并在页面中导出

发布网友 发布时间:2022-04-23 19:46

我来回答

1个回答

热心网友 时间:2022-04-21 09:39

java中导出Excel有两个组件可以使用,一个是jxl,一个是POI,我这里用的是POI。导出是可以在服务器上生成文件,然后下载,也可以利用输出流直接在网页
中弹出对话框提示用户保存或下载。生成文件的方式会导致服务器中存在着垃圾文件,实现方式不太优雅,所以这里我采用的是后面直接通过输出流的方式。
1、修改WEB服务器的CONF/web.xml,添加
<mime-mapping>
<extension>xls</extension>
<mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>

如果不添加这个,那么在网页中下载的时候就变成了JSP文件

2、download.jsp文件

<%@ page contentType="application/vnd.ms-excel" language="java" import="java.util.*,com.shangyu.action.WriteExcel" pageEncoding="GBK"%><%
response.setHeader("Content-Disposition","attachment;filename=test123.xls");//指定下载的文件名
response.setContentType("application/vnd.ms-excel");
WriteExcel we=new WriteExcel();
we.getExcel("111.xls",response.getOutputStream());
%>

注意不要有html代码,并且除了<% %> 中间的代码,其它的地方不要有空格。否则在导出文件的时候会在后台出现异常,虽然不影响程序的使用,到时令人看起来
不太舒服

3、WriteExcel.java 生成Excel的JavaBean,复杂的应用请查看API

package com.shangyu.action;
import java.io.*;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
public class WriteExcel
{

public void getExcel(String sheetName,OutputStream output)
{
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet1=wb.createSheet("sheet1");
HSSFRow row=sheet1.createRow((short)0);
HSSFCell cell=row.createCell((short)0);
cell.setCellValue(1);

row.createCell((short)1).setCellValue(2);
row.createCell((short)2).setCellValue(3);
row.createCell((short)3).setCellValue("中文字符");

row=sheet1.createRow((short)1);
cell=row.createCell((short)0);
cell.setCellValue(1);

row.createCell((short)1).setCellValue(2);
row.createCell((short)2).setCellValue(3);
row.createCell((short)3).setCellValue("中文字符");

//FileOutputStream fileout=new FileOutputStream("workbook.xls");

try {
output.flush();
wb.write(output);
output.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println( "Output is closed ");
}
}
}

通过以上三步,应该可以直接生成Excel文件下载或保存了,这在一些信息系统中相当有用。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shangyu79/archive/2008/07/21/2682541.aspx
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胜达这款车百公里油耗多少? 胜达节能油加盟办厂可靠吗是不是骗子 河南洛阳胜达就是骗子,我把钱交了也不来人了,他们一个老总说了爱咋办... 胜达油是个骗局吗 胜达节能油是什么? 叩解度关于叩解的论述 湿重跟湿重有关的打浆磨片 戴尔XPS M1330-950重要参数 如果到别的单位去面试的话 如果人家问起为什么会选择这家公司而离开另外... 学生会被两个部门同时面试怎么办 jsp查询的数据导出excel,不用list的方法, ...如何将数据库中的表导出到txt或者word,excel 小米8吃鸡屏幕不跟手解决办法? 通过jsp导入导出数据到Excel文档?该怎么做? 把jsp页面的table表中的数据导出成excel表 如何从JSP点击一个按钮,导出表格中的数据到EXCEL 怎么把一个JSP页面中的Table导出到Excle表格中?? 如何将jsp数据导出到excel中 JSP 网页表格导出到excel问题 如何将jsp页面当中table的数据导出到excel表格 通过点击按钮可以实现下 ... jsp页面的数据怎么样导出到excel表格 怎么把JSP页面里的查询出来的数据导出到excel jsp页面内容导出到Excel中 怎么做 怎么把jsp的内容导出excel 家人与学生关系怎么填 孩子的人际交往怎么写 与宝宝关系怎么写 监护人和孩子的关系写什么 家庭情况简表与孩子亲密程度怎么填 深圳律师谁专业? bak是什么文档? 后缀名为.bak的文件是什么文件,删除了有什么后果? 柚子用水加热了,有点苦,可以吃吗 柚子皮煮水为什么会发硬 柚子用开水烫着吃行吗 柚子瓤煮过在水里为什么浮起来? 柚子用水加热了,有点苦,可以吃吗? 英雄联盟段位级别排列分别是? 《英雄联盟》段位级别排列是怎么回事? 英雄联盟段位级别有哪些? LOL怎么段位排序? 英雄联盟是怎样排位段位的? 英雄联盟排位赛阶位分段,是如何分的? 在微视里发了个好包给好友,对方怎样看到领取啦? 英雄联盟的段位是怎么排的,从小到大? 视频号的红包发放是否需要搭载福袋功能,还是只需要点击红包封面用户就可以领 微信我加了对方好友,发了红包和消息,想发视频显示不是好友,对方可以收到红包吗 微信红包只发给我一个人怎么被别人领取? 台湾出的sqe50的防晒霜台湾出的防晒霜都有什么牌子的 下个月去台湾,想买安耐晒和资生堂DICILA envert防晒霜,这两个在台湾的免税店有卖的不?求