`
zengshaotao
  • 浏览: 791937 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java excel下载

    博客分类:
  • java
 
阅读更多

相对于上传,下载的功能会简单许多,也不用考虑太多客户端可能出现的异常。以下是功能代码概要,不能照搬使用:

 

public void download() throws Exception{
  
  
  //将查询到的数据写入到excel文件,提示下载
  OutputStream os = null;
  WritableWorkbook book =null;
  
  //防止出现乱码,这里需要进行特殊处理
  String customerName = URLDecoder.decode(this.potentialCustomerInfoVO.getCustomerName(), Constant.CHARCODE_UTF8);
  String certCode = URLDecoder.decode(this.potentialCustomerInfoVO.getCertiCode(), Constant.CHARCODE_UTF8);
  
  this.potentialCustomerInfoVO.setCustomerName(customerName);
  this.potentialCustomerInfoVO.setCertiCode(certCode);
  
  HttpServletResponse response = ServletActionContext.getResponse();
  
  //客户端看到的文件名称
  String displayName = "fileName.xls";
  response.setContentType("application/vnd.ms-excel");
  response.addHeader("Content-disposition","attachment;filename="+displayName);
  
  try {
   
   os = response.getOutputStream();
   book = Workbook.createWorkbook(os);
   
   //sheet内容的title
   String tmptitle = "客户车辆信息";
   //创建sheet名称
   WritableSheet wsheet = book.createSheet(tmptitle, 0);
   
   //第一列第一行 至 第七列第一行合并
   wsheet.mergeCells(0, 0, 7, 0);
   
   //设置第一行的宽度
//   wsheet.setRowView(0,40);设置后会隐藏
   
   //设置一级标题格式
   WritableFont font = new WritableFont(WritableFont.ARIAL,16,WritableFont.BOLD,
     false,UnderlineStyle.NO_UNDERLINE);
   
   WritableCellFormat wcfFC = new WritableCellFormat(font);
   
   //将水平对齐方式指定为居中
   wcfFC.setAlignment(jxl.format.Alignment.CENTRE);
   //将数值对齐方式指定为居中
   wcfFC.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
   
   //为excel添加带有格式的title
   wsheet.addCell(new Label(0,0,tmptitle,wcfFC));
   
   //设置二级标题的格式
   font = new WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD,
     false,UnderlineStyle.NO_UNDERLINE);
   
   wcfFC = new WritableCellFormat(font);
   
   wsheet.addCell(new Label(0,1,"车主姓名",wcfFC));
   wsheet.addCell(new Label(1,1,"证件类型",wcfFC));
   wsheet.addCell(new Label(2,1,"证件号码",wcfFC));
   wsheet.addCell(new Label(3,1,"车牌号",wcfFC));
   wsheet.addCell(new Label(4,1,"车架号",wcfFC));
   wsheet.addCell(new Label(5,1,"发动机号",wcfFC));
   wsheet.addCell(new Label(6,1,"行驶证",wcfFC));
   wsheet.addCell(new Label(7,1,"车型代码",wcfFC));
   
   //调用service层,获得符合条件的数据
   List<PotentialCustomerInfoVO> exportList = potentialCustomerService.queryPotentialCustomers(potentialCustomerInfoVO);
   
   String value = "";
   String tempValue = "";
   //设置excel主题内容
   for(int i = 0 ;i < exportList.size() ;i++){
    
    PotentialCustomerInfoVO pcv = exportList.get(i);
    
    wsheet.addCell(new Label(0,i+2,pcv.getCustomerName()));
    
    value = pcv.getCertiType();
    
    if(Constant.CERTITYPE_VALUE_SFZ.equals(value)){
     tempValue = Constant.CERTITYPE_TEXT_SFZ;
    }else if(Constant.CERTITYPE_VALUE_JGZ.equals(value)){
     tempValue = Constant.CERTITYPE_TEXT_JGZ;
    }else if(Constant.CERTITYPE_VALUE_HZ.equals(value)){
     tempValue = Constant.CERTITYPE_TEXT_HZ;
    }else if(Constant.CERTITYPE_VALUE_QT.equals(value)){
     tempValue = Constant.CERTITYPE_TEXT_QT;
    }
    wsheet.addCell(new Label(1,i+2,tempValue));
    wsheet.addCell(new Label(2,i+2,pcv.getCertiCode()));
    wsheet.addCell(new Label(3,i+2,pcv.getLicenceNumber()));
    wsheet.addCell(new Label(4,i+2,pcv.getVin()));
    wsheet.addCell(new Label(5,i+2,pcv.getEngineNumber()));
    wsheet.addCell(new Label(6,i+2,pcv.getDriverNumber()));
    wsheet.addCell(new Label(7,i+2,pcv.getF_1()));
   }
   book.write();
   os.flush();
  } catch (IOException e) {
   e.printStackTrace();
   throw e;
  } finally{
   //这里的输出流需要关闭,否则输出的excel文件内容为空
   try{
    if(book != null){
     book.close();
    }
    if(os!=null){
     os.close();
    }
   }catch(Exception e){
    e.printStackTrace();
   }
  }
 }

 

下载时要注意,如果对于浏览器没有选项卡的情况,且页面上是通过href的链接形式,要注意不能是href="javascript:void(0)",否则没有提示下载框.如果是本页面提示下载,使用href="#"

分享到:
评论

相关推荐

    java excel 下载功能插件

    Java中的Excel下载功能是Web应用中常见的需求,主要用于导出数据到Excel文件,方便用户进行数据分析和存储。这里提到的“java excel 下载功能插件”通常是指Java库或者工具,帮助开发者快速实现这一功能。以下是一些...

    java实现文件下载,并弹出保存对话框(Excel)

    本文将深入探讨如何使用Java实现文件下载,并在客户端弹出保存对话框,特别聚焦于Excel文件的处理,这在企业级应用中尤为常见。 ### Java实现文件下载的关键步骤 1. **设置HTTP响应头**:为了触发浏览器的下载行为...

    java导出excel文件并且下载到客户端(包括解决中文乱码).txt

    ### Java导出Excel文件并下载到客户端(含解决中文乱码问题) 在现代的企业级应用开发中,数据导出功能是非常常见的一种需求。特别是在B/S架构的应用中,用户经常需要将查询结果导出为Excel文件以便进行后续的数据...

    java Excel相关处理 java Excel相关处理

    java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关...

    java excel api

    例如,一个Web应用可能需要将数据库查询结果导出为Excel格式供用户下载,此时jxl就能发挥重要作用。 需要注意的是,由于jxl仅支持旧版的.xls格式,对于.xlsx(Excel 2007及以后版本)文件,你需要使用其他库,如...

    java excel转html

    Java提供了多种库来实现这样的功能,这些库通常能够处理不同版本的Excel文件,包括32位和64位系统上的文件。 首先,我们需要了解Java中的主要库,如Apache POI和JExcelAPI,它们是用于读取和操作Excel文件的流行...

    java动态大数据量EXCEL下载

    Java 动态大数据量EXCEL下载是一个常见的需求,在企业级应用中尤为常见,尤其是在数据分析、报表生成和数据导出场景下。以下是对这个主题的详细解释: 首先,我们需要理解Java如何处理大数据量的EXCEL文件。传统的...

    java实现生成下载Excel

    在Java编程环境中,生成并提供Excel文件下载是一个常见的需求,特别是在数据处理、报表生成或数据分析的应用中。要实现这一功能,通常会用到Apache POI库,这是一个强大的API,允许Java程序员创建、修改和显示...

    java 操作excel的例子

    在Java编程中,操作Excel是一项常见的任务,尤其在数据处理、报表生成或数据导入导出时。本示例提供了一个简单易懂的方法,演示如何从数据库中读取数据并将其写入Excel表格。这个小例子可能包括以下几个关键知识点:...

    java生成excel图表

    "Java生成Excel图表" Java生成Excel图表是使用Java语言来生成Excel图表的过程。Excel图表是指使用Excel软件生成的图表,例如柱状图、折线图、饼状图等。Java语言可以使用各种库和框架来生成Excel图表,例如...

    java,Excel下载

    在Java编程中,导出带有头部标题行的Excel文件是一项常见的需求,特别是在数据处理和报表生成的场景下。本主题将深入探讨如何使用Java实现这一功能,主要关注两个关键类:`ExportUtils.java`和`ExportWrapper.java`...

    java Excel导出导入

    java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入

    java Excel相关处理 工具类 java Excel相关处理 工具类

    java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 ...

    java解析excel

    在Java编程环境中,解析Excel文件是一项常见的任务,特别是在数据处理、报表生成或数据分析等领域。Java提供了多种库来处理Excel文件,如Apache POI、JExcelAPI、OpenCSV等,但最常用的是Apache POI库,它是一个用于...

    JAVA Excel模板POI导出并下载

    在"JAVA Excel模板POI导出并下载"的场景中,我们首先需要创建一个Excel模板,这个模板可以包含预设的格式、样式或者数据占位符。例如,你可能有一个模板文件,其中的某些单元格有固定的样式,而其他单元格则留空等待...

    POI实现Excel导入导出并附带加载进度条

    在Java开发中,处理Excel数据是一项常见的任务,尤其是在数据分析、报表生成或批量数据操作的场景下。Apache POI是一个强大的库,它允许开发者使用Java来读取、写入和修改Microsoft Office格式的文件,包括Excel(....

    java excel中表格导成png图片

    在Java编程环境中,将Excel表格转换为PNG图片是一项常见的需求,尤其在数据可视化或报告生成时。本篇文章将深入探讨如何使用Java实现这一功能,主要涉及Apache POI库的运用和其他相关技术。 Apache POI是一个强大的...

    Java Excel Api及详细教程

    Java Excel API是一个强大的工具,允许Java开发者方便地读取、写入和操作Microsoft Excel文件。在Eclipse这样的集成开发环境中,使用Java Excel API可以轻松处理各种Excel数据操作任务。本教程将详细介绍如何在...

    java导出excel(写入到excel后再下载)示例

    Java导出Excel是Java开发中常见的需求,尤其在数据分析、报表生成或数据交换场景中。本示例资源提供了一个RAR压缩包,包含了实现这一功能的源代码,主要讲解了两个核心部分:一是如何将数据写入Excel文件并保存在...

Global site tag (gtag.js) - Google Analytics