实现从数据库导出到excel

作者: Furion | 来源:发表于2016-06-08 21:28 被阅读135次

    实现这个功能可以通过jxl,或这poi 来实现,这里通过poi来实现在struts2导出。

    1:ExportUtils.java

    2: action.java 

    3:需要的jar包:

    poi-3.2-FINAL-20081019.jar

    poi-contrib-3.2-FINAL-20081019.jar

    poi-scratchpad-3.2-FINAL-20081019.jar

    1:ExportUtils.java

    package com.wsbalance.util;

    import java.lang.reflect.Method;

    import java.util.List;

    import org.apache.poi.hssf.usermodel.HSSFRow;

    import org.apache.poi.hssf.usermodel.HSSFSheet;

    import com.wsbalance.pojo.Performance;

    public class ExportUtils {

    /**

    * 设置sheet表头信息

    * @author David

    * @param headersInfo

    * @param sheet

    */

    public static void outputHeaders(String[] headersInfo,HSSFSheet sheet ){

    HSSFRow row = sheet.createRow(0);

    for (int i = 0; i < headersInfo.length; i++) {

    sheet.setColumnWidth(i, 4000);

    row.createCell(i).setCellValue(headersInfo[i]);

    }

    }

    public static void outputColumns(String[] headersInfo,

    List columnsInfo,HSSFSheet sheet,int rowIndex ){

    HSSFRow row ;

    //循环插入多少行

    for (int i = 0; i < columnsInfo.size(); i++) {

    row = sheet.createRow(rowIndex+i);

    Object obj = columnsInfo.get(i);

    //循环每行多少列

    //for (int j = 0; j < headersInfo.length; j++) {

    Performance p=(Performance) columnsInfo.get(i);

    row.createCell(0).setCellValue(p.getAgname());

    row.createCell(1).setCellValue(p.getAgwxnum());

    row.createCell(2).setCellValue(p.getMoney());

    row.createCell(3).setCellValue(p.getTeam());

    row.createCell(4).setCellValue(p.getPersonmoney());

    row.createCell(5).setCellValue(p.getMoneyperson());

    //}

    }

    }

    }

    2:在action中写实现downexcel方法,实现从服务器到本地一定要用response输出流

    public void downexcel() throws IOException{

    response.setContentType("application/octet-stream");

    response.setHeader("Content-Disposition", "attachment;filename=Achievement.xls");

    HSSFWorkbook  wb=new HSSFWorkbook();

    HSSFSheet sheet=wb.createSheet("sheet0");

    String[] title = {"姓名","微信号","团队业绩","团队奖金","个人业绩","个人奖金"};

    Listlp=achievementService.getPerformanceAll();

    ExportUtils.outputHeaders(title, sheet);

    ExportUtils.outputColumns(title, lp, sheet, 1);

    ServletOutputStream out=response.getOutputStream();

    wb.write(out);

    out.flush();

    out.close();

    }

    相关文章

      网友评论

        本文标题:实现从数据库导出到excel

        本文链接:https://www.haomeiwen.com/subject/mavjdttx.html