zoukankan      html  css  js  c++  java
  • 导出Execel

    //请求入口

    @SuppressWarnings("serial")
    @ParentPackage("default") //action请求
    @Results( { @Result(name = BaseActionSupport.RELOAD, value = "workcalendarbb.action", type = ServletActionRedirectResult.class),
    @Result(name = WorkCalendarBbAction.ARCHIVE_SORT_EXCEL, value = "stream", type = StreamResult.class, params = {
    "contentType", "application/vnd.ms-excel", "inputName", "stream",
    "contentDisposition", "attachment;filename="archiveFolder.xls"",
    "bufferSize", "1024" }) }) //导出需要
    //实体类 ToaWorkCalendarBb
    public class WorkCalendarBbAction extends BaseActionSupport<ToaWorkCalendarBb>{

    //导出execel
    private InputStream stream;
    public static final String ARCHIVE_SORT_EXCEL = "archiveSortExcel";

    /实体类
    private ToaWorkCalendarBb model = new ToaWorkCalendarBb();
    /**
    * 导出execel表格
    * @return
    */
    public String importExcel(){
    try {
    ToaWorkCalendarBb model=new ToaWorkCalendarBb();
    SimpleDateFormat st = new SimpleDateFormat(
    "yyyy");

    if(models.getCaltype1Id()!=null&&!"null".equals(models.getCaltype1Id())){
    if(!"null".equals(models.getCaltype1Id())){
    model.setCaltype1Id(models.getCaltype1Id());
    }
    }
    //开始时间
    if(models.getCalStartTime()!=null&&!"".equals(models.getCalStartTime())){
    model.setCalStartTime(models.getCalStartTime());
    }
    //结束时间
    if(models.getCalEndTime()!=null&&!"".equals(models.getCalEndTime())){
    model.setCalEndTime(models.getCalEndTime());
    }


    // 导出Excel数据流.
    stream = manager.searchExcel(model);
    } catch (Exception e) {
    e.printStackTrace();
    }
    return ARCHIVE_SORT_EXCEL;
    }

    }

    具体方法

    /***
    * 导出execel表格
    * @param model
    * @return
    * @throws DAOException
    * @throws ParseException
    */
    public InputStream searchExcel(ToaWorkCalendarBb model)throws DAOException, ParseException{
    //拼写表头
    HSSFWorkbook wb = new HSSFWorkbook();
    HSSFRow row;
    HSSFCell cell;
    HSSFSheet sheet = wb.createSheet("sheet1");
    row = sheet.createRow(0);
    cell = row.createCell((short) 0);
    int m=0;
    //row = sheet.createRow(0);
    HSSFCellStyle cellStyle= wb.createCellStyle();
    HSSFFont font = wb.createFont();
    sheet.setColumnWidth((short)m,(short)5000);
    cell = row.createCell((short) m++);
    /** 列名
    * 横向
    * **/
    cell.setCellValue("填报人");
    cellStyle= wb.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    font = wb.createFont();
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
    cellStyle.setFont(font);
    cell.setCellStyle(cellStyle);

    cell = row.createCell((short) m++);
    sheet.setColumnWidth((short)m,(short)5000);
    cell.setCellValue("填报处室");
    cellStyle= wb.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    font = wb.createFont();
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
    cellStyle.setFont(font);
    cell.setCellStyle(cellStyle);

    sheet.setColumnWidth((short)m,(short)5000);
    cell = row.createCell((short) m++);
    cell.setCellValue("日志分类");
    cellStyle= wb.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    font = wb.createFont();
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
    cellStyle.setFont(font);
    cell.setCellStyle(cellStyle);

    sheet.setColumnWidth((short)m,(short)5000);
    cell = row.createCell((short) m++);
    cell.setCellValue("日志条数");
    cellStyle= wb.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    font = wb.createFont();
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
    cellStyle.setFont(font);
    cell.setCellStyle(cellStyle);

    sheet.setColumnWidth((short)m,(short)5000);
    cell = row.createCell((short) m++);
    cell.setCellValue("总时长");
    cellStyle= wb.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    font = wb.createFont();
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
    cellStyle.setFont(font);
    cell.setCellStyle(cellStyle);

    sheet.setColumnWidth((short)m,(short)5000);
    cell = row.createCell((short) m++);
    cell.setCellValue("其中加班时间");
    cellStyle= wb.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    font = wb.createFont();
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
    cellStyle.setFont(font);
    cell.setCellStyle(cellStyle);

    sheet.setColumnWidth((short)m,(short)5000);
    cell = row.createCell((short) m++);
    cell.setCellValue("其中出差时间");
    cellStyle= wb.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    font = wb.createFont();
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
    cellStyle.setFont(font);
    cell.setCellStyle(cellStyle);

    sheet.setColumnWidth((short)m,(short)5000);
    cell = row.createCell((short) m++);
    cell.setCellValue("活动地点");
    cellStyle= wb.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    font = wb.createFont();
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
    cellStyle.setFont(font);
    cell.setCellStyle(cellStyle);

    /** 表头拼写完成
    * 查询数据
    * for循环放进去
    * **/


    //获取数据,不是拼写的数据,只是从数据库差所有
    List<ToaWorkCalendarBb> list = search(model);//获取满足条件的ToaArchiveFolder对象
    /**
    * 遍历listtt
    * 放进execel表格
    */
    for (int i = 0; i < list.size()+0; ++i)
    {
    ToaWorkCalendarBb folder = list.get(i);
    SimpleDateFormat st = new SimpleDateFormat(
    "yyyy");
    row = sheet.createRow(i + 1);

    int j=0;
    /**
    * 字段对应的位置
    * 横向 放值
    */
    //填报人
    cell = row.createCell((short) j++);
    cell.setCellValue(folder.getCalUserName());
    cellStyle= wb.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    cell.setCellStyle(cellStyle);

    //填报处室
    cell = row.createCell((short) j++);
    cell.setCellValue(folder.getOrgName());
    cellStyle= wb.createCellStyle();
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    cell.setCellStyle(cellStyle);

    //日志分类
    cell = row.createCell((short) j++);
    // cell.setCellValue(st.format(folder.getBsstripEndTime()));
    cell.setCellValue(folder.getCaltype1Idname());
    cellStyle= wb.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    cell.setCellStyle(cellStyle);



    //日志条数
    cell = row.createCell((short) j++);
    cell.setCellValue(folder.getJournalTotal());
    cellStyle= wb.createCellStyle();
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    cell.setCellStyle(cellStyle);

    //总时长
    cell = row.createCell((short) j++);
    cell.setCellValue(folder.getTimeTotal());
    cellStyle= wb.createCellStyle();
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    cell.setCellStyle(cellStyle);

    //其中加班时长
    cell = row.createCell((short) j++);
    cell.setCellValue(folder.getOverTime());
    cellStyle= wb.createCellStyle();
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    cell.setCellStyle(cellStyle);

    //其中出差时长
    cell = row.createCell((short) j++);
    cell.setCellValue(folder.getTravelTime());
    cellStyle= wb.createCellStyle();
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    cell.setCellStyle(cellStyle);

    //活动地点
    cell = row.createCell((short) j++);
    cell.setCellValue(folder.getActiveSite());
    cellStyle= wb.createCellStyle();
    cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    cell.setCellStyle(cellStyle);
    }
    /** 放值结束 **/
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    try{
    wb.write(os);
    }catch (IOException e){
    e.printStackTrace();
    }
    byte[] content = os.toByteArray();
    InputStream is = new ByteArrayInputStream(content);
    return is;
    }

  • 相关阅读:
    气象数据集数据和相关源码
    农产品质量追溯系统/质量安全追溯系统
    Nutch2.x 演示抓取第一个网站
    Nutch的配置以及动态网站的抓取
    leach-matlab
    leach协议matlab仿真代码
    无线传感器网络数据融合技术
    无线传感器网络数据融合概述
    No pressure, no diamonds.
    Hibernate缓存应用的积累与总结
  • 原文地址:https://www.cnblogs.com/wusx/p/5384024.html
Copyright © 2011-2022 走看看