`
砺雪凝霜
  • 浏览: 157111 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Excel导出

阅读更多

Excel导出数据库中数据的方法:

 

1.  从数据库中取出将要导出的数据,放在list中

 

2.  得到模板

 

3.  循环迭代list中的数据,然后生成一列(row)中的数据,迭代完一个对象后,加一行,直到整个list迭代完

    

导出的service方法如下,供大家参考!

public void exportExcel2(String payUsername) {
  //得到要导出的数据
  StringBuffer sb = new StringBuffer("from LogClaimRecord ");
  if(StringUtils.isNotBlank(payUsername)){
   sb=sb.append(" where payUserName='"+payUsername+"'");
  }
  sb.append(" order by createTime");
  String sql = sb.toString();
  List<LogClaimRecord> list = baseTransaction.find(sql);
  //下载模板
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
     String msg = "";
     HttpServletResponse response = (HttpServletResponse)ActionContext.getContext().get("com.opensymphony.xwork2.dispatcher.HttpServletResponse");
     response.reset();
     try
     {
       response.setContentType("application/vnd.ms-excel;charset=UTF-8");
       response.setHeader("Content-disposition", "attachment;filename=\"" + new String("Member Information.xls".getBytes("GBK"), "ISO-8859-1") + "\"");
       //会员信息
     } catch (UnsupportedEncodingException e1) {
       msg = "不支持编码异常!";
     }
     String separator = java.io.File.separator; // 分隔符
  String filePath = Platform.getInstance().getRealPath()+ separator+"templateFile"+separator;
     Workbook rwb = null;
     try {
      InputStream is = new FileInputStream(filePath+"待认领记录.xls");
      System.out.println("is==========="+is);
       rwb = Workbook.getWorkbook(is);
       System.out.println("rwb==========="+rwb);
       WritableWorkbook wwb = Workbook.createWorkbook(response.getOutputStream(), rwb);
       WritableSheet ws = wwb.getSheet(0);
       int rowNum = 1;
       int colNum = 0;
       WritableFont wFont = new WritableFont(WritableFont.ARIAL, 10);
       WritableCellFormat wcf = new WritableCellFormat(wFont);
       wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
       wcf.setBorder(Border.ALL, BorderLineStyle.THIN);
       wcf.setAlignment(Alignment.CENTRE);
       wcf.setWrap(true);
       for (int iRow = 0; iRow < list.size(); iRow++) {
         colNum = 0;
        //汇款金额
         String payAmounts = list.get(iRow).getPayAmounts();
         if(payAmounts == null){
          ws.addCell(new Label(colNum, rowNum, "", wcf));
         }else{
          ws.addCell(new Label(colNum, rowNum, payAmounts+"元", wcf));
         }
         colNum++;
         //汇款人 
         String payUserName = list.get(iRow).getPayUserName();
         if(payAmounts == null){
          ws.addCell(new Label(colNum, rowNum, "", wcf));
         }else{
          ws.addCell(new Label(colNum, rowNum, payUserName, wcf));
         }
         colNum++;
         //汇款方式
         String payWay = list.get(iRow).getPayWay();
         if(payAmounts == null){
          ws.addCell(new Label(colNum, rowNum, "", wcf));
         }else if("1".equals(payWay.trim())){
          ws.addCell(new Label(colNum, rowNum, "", wcf));
         }else if("2".equals(payWay.trim())){
          ws.addCell(new Label(colNum, rowNum, "现场转账", wcf));
         }else if("3".equals(payWay.trim())){
          ws.addCell(new Label(colNum, rowNum, "银行转账", wcf));
         }else if("4".equals(payWay.trim())){
          ws.addCell(new Label(colNum, rowNum, "邮局汇款", wcf));
         }
         colNum++;
         //汇款时间
         Timestamp payTime = list.get(iRow).getPayTime();
         if(payTime == null){
          ws.addCell(new Label(colNum, rowNum, "", wcf));
         }else{
          ws.addCell(new Label(colNum, rowNum, df.format(payTime), wcf));
         }
         colNum++;
         //创建时间
         Timestamp createTime = list.get(iRow).getCreateTime();
         if(payTime == null){
          ws.addCell(new Label(colNum, rowNum, "", wcf));
         }else{
          ws.addCell(new Label(colNum, rowNum, df.format(createTime), wcf));
         }
         colNum++;
         //认领原因
         String reason = list.get(iRow).getReason();
         if(reason == null){
          ws.addCell(new Label(colNum, rowNum, "", wcf));
         }else{
          ws.addCell(new Label(colNum, rowNum, reason, wcf));
         }
         colNum++;
         rowNum++;
       }
       wwb.write();
       wwb.close();
     }
     catch (Exception e)
     {
       msg = "数据没法写入excel中!!";
       e.printStackTrace();
     } finally {
      System.out.println("finally.rwb==========="+rwb);
       rwb.close();
     }
  
  
 }

分享到:
评论

相关推荐

    excel导出支持前台和后台导出

    在IT行业中,Excel导出是一项常见的功能,尤其在企业级应用中,用于数据报表的生成与分享。"Excel导出支持前台和后台导出"这一技术主题涉及到如何在Web应用程序中实现用户请求的数据导出到Excel文件,既可以选择在...

    excel导出实现代码

    在IT行业中,Excel导出是一项常见的需求,尤其是在数据处理、报表生成和数据分析等领域。Apache POI是一个开源项目,专门用于读取和写入Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。以下是对"Excel导出...

    新版excel导出控件.rar_donec1p_pb_pb excel_pb 导出_pb导出excel

    在这个场景中,"新版excel导出控件.rar_donec1p_pb_pb excel_pb 导出_pb导出excel" 的标题和描述提到了一个关键的开发需求:在PB应用中导出数据到Excel文件。 传统的PowerBuilder(PB)自身虽然提供了数据窗口...

    Excel导出数据(根据Excel模板定义)

    "Excel导出数据(根据Excel模板定义)"这个主题涉及到的核心技术是如何根据预设的Excel模板生成和导出数据,通常用于批量生成报表或者进行复杂的数据呈现。下面将详细解释这一过程及其相关知识点。 1. **Excel模板...

    海量千万级Excel导出源码-自动分sheet

    然而,当面对千万级甚至更大规模的数据时,传统的Excel导出方式会面临诸多挑战,如文件大小限制、性能瓶颈等。针对这一问题,"海量千万级Excel导出源码-自动分sheet"提供了一种解决方案。 首先,我们要理解为什么...

    Excel导出时不要表头.txt

    ### Excel导出时不要表头知识点详解 #### 一、知识点概述 在处理大量数据时,Excel 是一种非常实用的数据管理工具。有时我们可能需要将数据从数据库或其他数据源导出到Excel文件中,但在这个过程中,我们并不希望...

    excel导出公共组件

    在IT行业中,Excel导出公共组件是一个非常实用的功能,它允许开发者通过编程方式将查询到的数据高效地导出为Excel格式的文件。这样的组件通常被广泛应用于数据分析、报表生成、数据备份等领域,使得用户可以方便地对...

    Excel导出百万级数据

    本话题将深入探讨如何使用C#编程语言来解决“Excel导出百万级数据”的问题。 首先,我们需要理解Excel的性能瓶颈。Excel本身对打开和操作大量数据有一定限制,特别是2003版本之前的XLS格式,最大行数为65536行,而...

    POI的EXCEL导出,自动换行

    ### POI的EXCEL导出,自动换行 在日常工作中,经常需要处理大量的数据导入导出任务,尤其是在企业级应用开发中,Excel文件的处理成为了一项必不可少的能力。Apache POI项目提供了一系列用于读写Microsoft Office...

    ExtJS实现Excel导出

    ### ExtJS实现Excel导出:深入解析与实践 在当今高度数字化的工作环境中,数据的管理和呈现方式至关重要。其中,Excel作为数据处理和分析的重要工具,其导出功能在各种应用场景中显得尤为关键。ExtJS,作为一种强大...

    java Excel导出导入

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

    ASP excel导出/导入Access数据库(代码+实例下载)

    在"ASP excel导出/导入Access数据库(代码+实例下载)"这个主题中,我们将探讨如何使用ASP实现这两个功能。首先,我们来看Excel导出到Access数据库的过程。 1. **Excel数据导入Access**: - 首先,你需要使用ADO...

    JAVA poi 做EXCEL导出(包含图片) 完整版

    本教程将详细介绍如何使用JAVA POI库来创建一个包含图片的完整Excel导出功能。 首先,你需要在项目中引入Apache POI依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache....

    php excel导出 导入

    "php excel导出 导入"这个主题涵盖了一系列的技术点,包括如何使用PHP与Excel文件进行交互。下面将详细讲解这个主题。 1. **PHPExcel库** PHPExcel是一个强大的PHP类库,它允许开发者创建、读取和修改Microsoft ...

    多个excel导出压缩成zip 文件 数据量大导出

    "多个Excel导出压缩成zip文件"的场景通常是为了解决数据量过大导致的文件管理不便、传输效率低以及存储空间占用过多等问题。下面我们将深入探讨这个话题,主要涵盖以下几个方面: 1. **大数据量导出**: - 当数据...

    C#导出Excel 导出PDF

    本主题聚焦于如何利用C#实现数据的导出功能,包括将查询结果或表格信息导出为Excel文件和PDF文档。这两种格式在数据共享、报告生成和打印等方面非常常见。 首先,我们来看C#导出Excel的实现。Excel文件通常以`.xlsx...

    Excel导出、自定义表头、锁定首行、合并、字体、边框

    首先,Excel导出是一个常用的功能,它允许我们将工作簿中的数据保存为多种格式,如CSV、PDF或XML等,便于数据交换和备份。在编程环境中,可以使用Python的pandas库或VBA宏来批量自动化这个过程。 其次,自定义表头...

    excel导出lua和xml工具

    Excel导出Lua和XML工具是一种实用的软件工具,它允许用户通过Excel表格来方便地管理和导出数据到Lua脚本语言或XML(可扩展标记语言)格式。在IT行业中,这两种格式都有各自的用途和优势。 Lua是一种轻量级的、...

    excel 自定义列导出, excel导出

    标题说的很清楚,利用asm-3.1.jar,cglib-2.2.jar,commons-io-1.3.2.jar,poi-3.9-20121203.jar 开发的一个工具包。 其中用到字节码编码,反射,excel操作。...主要功能1、自定义列导出excel Main()类为测试用例

    Excel导出两种方式

    在Excel导出中,我们可以定义一个javabean,每个属性对应Excel表格中的一列。以下是一个简单的步骤: 1. **创建javabean**: 假设我们有一个`Student`类,包含`name`, `age`, `imagePath`等属性。 2. **填充数据**: ...

Global site tag (gtag.js) - Google Analytics