zoukankan      html  css  js  c++  java
  • JavaBean数据导出excel与csv文件

    /**

    导出excel文件,文件操作使用Apache POI框架

    **/

    public static <E> void exportExcel(HttpServletResponse response, String[] header, int[] column, String[] fileNames, List<E> list, String excelName) {
    // 创建工作簿
    HSSFWorkbook wb = new HSSFWorkbook();
    // 创建一个sheet
    HSSFSheet sheet = wb.createSheet(excelName);
    
    HSSFRow headerRow = sheet.createRow(0);
    HSSFRow contentRow = null;
    
    // 设置标题
    for (int i = 0; i < header.length; i++) {
    headerRow.createCell(i).setCellValue(header[i]);
    if (column != null) {
    sheet.setColumnWidth(i, column[i]);
    }
    }
    try {
    int size = list.size();
    for (int i = 0; i < size; i++) {
    contentRow = sheet.createRow(i + 1);
    // 获取每一个对象
    E o = list.get(i);
    Class cls = o.getClass();
    for (int j = 0; j < fileNames.length; j++) {
    String fieldName = fileNames[j].substring(0, 1).toUpperCase() + fileNames[j].substring(1);
    Method getMethod;
    try {
    getMethod = cls.getMethod("get" + fieldName);
    Object value = getMethod.invoke(o);
    if (value != null) {
    contentRow.createCell(j).setCellValue(value.toString());
    }
    } catch (NoSuchMethodException e) {
    contentRow.createCell(j).setCellValue(i+1);
    }
    
    }
    }
    } catch (IllegalArgumentException e) {
    logger.error("", e);
    } catch (IllegalAccessException e) {
    logger.error("", e);
    } catch (InvocationTargetException e) {
    logger.error("", e);
    } catch (SecurityException e) {
    logger.error("", e);
    }
    
    OutputStream os = null;
    try {
    response.reset();
    response.addHeader("Content-Disposition", "attachment;filename=" + new String((excelName + ".xlsx").getBytes(), "iso-8859-1"));
    response.setContentType("application/vnd.ms-excel;charset=utf-8");
    os = response.getOutputStream();
    wb.write(os);
    } catch (Exception e) {
    logger.error("", e);
    } finally {
    IOUtil.close(os);
    }
    }

    /**

    导出csv文件,文件操作使用univocity框架

    **/

    public static <E> void exportCsv(HttpServletResponse response, String[] header, int[] column, String[] fileNames, List<E> list, String csvName){
    
    OutputStream os = null;
    CsvWriter writer = null;
    try {
    response.reset();
    response.addHeader("Content-Disposition", "attachment;filename=" + new String((csvName + ".csv").getBytes(), "iso-8859-1"));
    response.setContentType("application/vnd.ms-excel;charset=utf-8");
    os = response.getOutputStream();
    writer = new CsvWriter(os, new CsvWriterSettings());
    writer.writeHeaders(header);
    int size = list.size();
    for (int i = 0; i < size; i++) {
    String[] content = new String[size];
    // 获取每一个对象
    E o = list.get(i);
    Class cls = o.getClass();
    for (int j = 0; j < fileNames.length; j++) {
    String fieldName = fileNames[j].substring(0, 1).toUpperCase() + fileNames[j].substring(1);
    Method getMethod;
    try {
    getMethod = cls.getMethod("get" + fieldName);
    Object value = getMethod.invoke(o);
    if (value != null) {
    content[i] = value.toString();
    }
    } catch (NoSuchMethodException e) {
    content[i] = "";
    }
    }
    writer.writeRow(content);
    }
    } catch (Exception e) {
    logger.error("", e);
    } finally {
    writer.close();
    IOUtil.close(os);
    }
    }
  • 相关阅读:
    【Oracle 12c】最新CUUG OCP-071考试题库(58题)
    【Oracle 12c】最新CUUG OCP-071考试题库(57题)
    【Oracle 12c】最新CUUG OCP-071考试题库(56题)
    【Oracle 12c】最新CUUG OCP-071考试题库(55题)
    voip,
    处理xmpp 离线信息,
    流程,xmpp发送信息,
    折腾我几天的 消息状态,
    三者的区别,
    bundle,
  • 原文地址:https://www.cnblogs.com/Jhon-Mr/p/7722811.html
Copyright © 2011-2022 走看看