java导出数据库中Excel表格数据的方法

 更新时间:2017年08月21日 11:34:08   作者:众星捧月  
这篇文章主要为大家详细介绍了java导出数据库中Excel表格数据的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本篇文章基于java把数据库中的数据以Excel的方式导出,欢迎各位大神吐槽:

1、基于maven jar包引入如下:  

<dependency>
   <groupId>net.sourceforge.jexcelapi</groupId>
   <artifactId>jxl</artifactId>
   <version>2.6.12</version>
 </dependency> 

2、首先创建数据库对应的实体类VO :UserVO(具体代码省略);

3、确定导出Excel内的title列,并放在数组里:String[] (具体代码省略);

4、编写导出Excel的方法:

传入参数:

Excel名称,Excel内的title列数组String[],数据集合List<UserVO>

package bp.util;

import java.io.OutputStream;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ExportExcel {

  public final static String exportExcel(String fileName, String[] Title, List listContent,
      HttpServletResponse response) {
    String result = "Excel文件导出成功!";
    try {
      OutputStream os = response.getOutputStream();
      response.reset();
      response.setHeader("Content-disposition",
          "attachment; filename=" + new String(fileName.getBytes("GB2312"), "ISO8859-1"));
      response.setContentType("application/msexcel");
      WritableWorkbook workbook = Workbook.createWorkbook(os);

      WritableSheet sheet = workbook.createSheet("Sheet1", 0);
      jxl.SheetSettings sheetset = sheet.getSettings();
      sheetset.setProtected(false);

      WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);
      WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);
      wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN);
      wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE);
      wcf_center.setAlignment(Alignment.CENTRE);
      wcf_center.setWrap(true);

      for (int i = 0; i < Title.length; i++) {
        sheet.setColumnView(i, 20);
        sheet.addCell(new Label(i, 0, Title[i], wcf_center));
      }
      Field[] fields = null;
      int i = 1;
      for (Object obj : listContent) {
        fields = obj.getClass().getDeclaredFields();
        int j = 0;
        for (Field v : fields) {
          v.setAccessible(true);
          Object va = v.get(obj);
          if (va == null) {
            va = "";
          }
          sheet.addCell(new Label(j, i, va.toString(), wcf_center));
          j++;
        }
        i++;
      }
      workbook.write();
      workbook.close();

    } catch (Exception e) {
      result = "Excel文件导出失败";
      e.printStackTrace();
    }
    return result;
  }
}

在需要导出数据的时候调用此方法即可;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JAVA mongodb 聚合几种查询方式详解

    JAVA mongodb 聚合几种查询方式详解

    这篇文章主要介绍了JAVA mongodb 聚合几种查询方式详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Java Web项目中如何添加Tomcat的Servlet-api.jar包(基于IDEA)

    Java Web项目中如何添加Tomcat的Servlet-api.jar包(基于IDEA)

    servlet-api.jar是在编写servlet必须用到的jar包下面这篇文章主要给大家介绍了基于IDEAJava Web项目中如何添加Tomcat的Servlet-api.jar包的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • 使用注解@Recover优化丑陋的循环详解

    使用注解@Recover优化丑陋的循环详解

    我们知道在实现一个功能的时候是可以使用不同的代码来实现的,那么相应的不同实现方法的性能肯定也是有差别的,下面这篇文章主要给大家介绍了关于使用注解@Recover优化丑陋的循环的相关资料,需要的朋友可以参考下
    2022-04-04
  • Java死锁问题详解及示例

    Java死锁问题详解及示例

    本文将讨论Java程序中死锁问题的概念、产生原因以及避免策略。同时,我们还将通过代码示例来进一步阐述这个问题,感兴趣的小伙伴可以跟着小编一起来学习
    2023-04-04
  • springboot整合quartz项目使用案例

    springboot整合quartz项目使用案例

    quartz是一个定时调度的框架,就目前市场上来说,其实有比quartz更优秀的一些定时调度框架,不但性能比quartz好,学习成本更低,而且还提供可视化操作定时任务,这篇文章主要介绍了springboot整合quartz项目使用(含完整代码),需要的朋友可以参考下
    2023-05-05
  • Java参数按值传递示例演示

    Java参数按值传递示例演示

    在Java中,方法参数的传递方式实际上是按值传递,接下来通过本文给大家介绍了Java参数按值传递示例演示,需要的朋友可以参考下
    2023-09-09
  • 数据库基本操作语法归纳总结

    数据库基本操作语法归纳总结

    本篇文章主要介绍了数据库的一些常用方法及一些基本操作,需要的朋友可以参考下
    2017-04-04
  • SpringBoot解决ajax跨域问题的方法

    SpringBoot解决ajax跨域问题的方法

    这篇文章主要为大家详细介绍了SpringBoot解决ajax跨域问题的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • java中ExecutorService创建方法总结

    java中ExecutorService创建方法总结

    在本篇文章里小编给大家整理了一篇关于java中ExecutorService创建方法总结,有兴趣的朋友们可以参考下。
    2021-01-01
  • Java如何获取数组和字符串的长度(length还是length())

    Java如何获取数组和字符串的长度(length还是length())

    这篇文章主要介绍了Java如何获取数组和字符串的长度(length还是length()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论