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;
    }

  • 相关阅读:
    Longest Palindromic Substring
    PayPal MLSE job description
    Continuous Median
    Remove Duplicates From Linked List
    Valid IP Address
    Longest substring without duplication
    Largest range
    Subarray sort
    Multi String Search
    Suffix Trie Construction
  • 原文地址:https://www.cnblogs.com/wusx/p/5384024.html
Copyright © 2011-2022 走看看