jsp页面导出用jxl方式导出数据到excel表格并下载保存(第二种直接用java类实现)

在做通过jsp页面动态取数据到excel表格,点击按钮下载保存功能,通过网上资源学习,自己用了简单的方式实现了功能。

保存数据到excel表格可以用POI以及jxl,我用的是jxl实现的。

1.下载jxl.rar包,复制后粘贴到工程lib目录下,会自动引入到Referenced Libraries外部包目录。

2.建一个点击按钮页面excelExportTest.jsp,这个很简单。

    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>导出excel表格</title>
<script type="text/javascript">
   function hpExport(obj){
      obj.href = "excelExport.jsp";
    return true;
  }
</script>
  </head>
  <body>
    <a href="#" id="hpExport" onClick="return hpExport(this)">导出数据</a>
  </body>
</html>

3.新建导出excel表格操作页面excelExport.jsp

<%@ page language="java" import="java.util.*,java.io.*,jxl.write.WritableWorkbook,
jxl.Workbook,jxl.write.WritableSheet,jxl.write.Label,com.bestnet.dao.HotDao,com.bestnet.dao.HotVo" pageEncoding="GBK"%>
<%
try{
String city=request.getParameter("city");
String grade=request.getParameter("grade");

response.setContentType("application/vnd.ms-excel");  //保证不乱码

String fileName=city+"excel表格数据.xls";

//response.addHeader("Content-Disposition","attachment; filename="+city+excel表格数据.xls","ISO-8859-1");
response.setHeader("Content-Disposition", "attachment;"
+ " filename="
+ new String(fileName.getBytes(), "ISO-8859-1"));

OutputStream os = response.getOutputStream();
out.clear();
out = pageContext.pushBody();    //这2句一定要,不然会报错。

WritableWorkbook wwb = Workbook.createWorkbook(os);

WritableSheet ws = wwb.createSheet(city,0);

HotDao hotdao=new HotDao();
List hotlist=new ArrayList();

if(Integer.parseInt(grade)==2){
hotlist=hotdao.list();
}else if(Integer.parseInt(grade)==3){
hotlist=hotdao.citylist(city);
}else if(Integer.parseInt(grade)==4){
hotlist=hotdao.subcitylist(city);
}


Label label = new Label(0,0,"热点名称");
ws.addCell(label);
label = new Label(1,0,"热点地址");
ws.addCell(label);
label = new Label(2,0,"覆盖范围");
ws.addCell(label);

for(int i=0;i<hotlist.size();i++){
HotVo hotvo= (HotVo) hotlist.get(i);
label = new Label(0,(i+1),hotvo.getHOTNAME());
ws.addCell(label);
label = new Label(1,(i+1),hotvo.getADDRESS());
ws.addCell(label);
label = new Label(2,(i+1),hotvo.getAREA());
ws.addCell(label);
System.out.println(hotvo.getHOTNAME()+"+++++++++++++++++++++++++++++++++++++++++++++");
}

wwb.write();
wwb.close();
os.close();

}catch(Exception e){
System.out.println("生成信息表(Excel格式)时出错:");
    e.printStackTrace();
}

%>








二。

单独使用java类实现:

package common;


import java.io.*;


import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;


public class ExcelExport {
public static void excelExport(OutputStream os){
try{
//WritableWorkbook wwb=Workbook.createWorkbook(new File(targetfile));

WritableWorkbook wwb = Workbook.createWorkbook(os);

WritableSheet ws = wwb.createSheet("第一页",0);

Label label = new Label(0,0,"会员姓名");
ws.addCell(label);
label = new Label(1,0,"卡号");
ws.addCell(label);
label = new Label(2,0,"联系地址");
ws.addCell(label);
label = new Label(3,0,"邮编");
ws.addCell(label);
label = new Label(4,0,"联系电话");
ws.addCell(label);

wwb.write();
wwb.close();



// WritableFont wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);
//    WritableCellFormat wcf = new WritableCellFormat(wf);
// Label labelcf = new Label(1,0,"this is a label test",wcf);
// ws.addCell(labelcf);
//  
// WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,
//  UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
//    WritableCellFormat wcfFC = new WritableCellFormat(wfc);
//        Label labelCF = new Label(1,0,"This is a Label Cell",wcfFC);
//    ws.addCell(labelCF);
//    
//    Number labelN = new Number(0,1,3.1415926);
//    ws.addCell(labelN);






}catch(Exception e){
System.out.println("生成信息表(Excel格式)时出错:");
   e.printStackTrace();


}


}


public static void main(String[] args)
 {
 try
 {

 File fileWrite = new File("D:/testWrite.xls");
 fileWrite.createNewFile();
 OutputStream os = new FileOutputStream(fileWrite);
 ExcelExport.excelExport(os);


 }
 catch(Exception e)
 {
 e.printStackTrace();
 }


 }
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以使用EasyExcel组件来导出数据Excel表格。EasyExcel是阿巴巴开源的一个优秀的Java解析和生成Excel的框架。相对于其他框架如Apache POI和JXL,EasyExcel具有更低的内存消耗,能够处理大型Excel文件而不会导致内存溢出的问题。EasyExcel提供了简单易用的API,使得导出Excel变得简单方便。你可以通过访问EasyExcel的官方网站(https://easyexcel.opensource.alibaba.com)或者GitHub地址(https://github.com/alibaba/easyexcel)来了解更多关于EasyExcel的详细信息和使用方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Java使用easyexcel导出数据Excel表格](https://blog.csdn.net/weixin_45536587/article/details/124751757)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Java导出Excel文件合集(easyExcel)](https://blog.csdn.net/weixin_42555014/article/details/131853805)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值