`
砺雪凝霜
  • 浏览: 155531 次
  • 性别: 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导出数据(根据Excel模板定义)

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

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

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

    Excel导出时不要表头.txt

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

    excel导出公共组件

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

    Excel导出百万级数据

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

    ExtJS实现Excel导出

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

    POI的EXCEL导出,自动换行

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

    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...

    php excel导出 导入

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

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

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

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

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

    Excel导出工具类

    在IT行业中,Excel导出工具类是经常被用于数据处理和报表生成的模块。这个工具类通常是为了简化从应用程序中批量导出数据到Excel文件的过程,使得开发者可以更高效地处理大量的结构化信息。以下是对"Excel导出工具类...

    C#导出Excel 导出PDF

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

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

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

    C# 关于EXCEL 导出 的类 DLL 带源码

    通过研究和使用这个"C#关于EXCEL导出的类DLL带源码",开发者可以快速构建自己的Excel导出功能,而无需从头开始编写代码。这不仅可以节省时间,还可以利用已有的最佳实践和优化。同时,这也提供了一个学习C#与Excel...

    excel导出lua和xml工具

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

    Excel导出两种方式

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

    excel导出类,实现excel的导出功能

    excel导出类,可以直接使用类来实现excel导出,不回出现excel扩展格式错误问题!

    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()类为测试用例

Global site tag (gtag.js) - Google Analytics