0033-excel导出

转载 2016年08月30日 08:54:50

        EO eo= new EO();//导出文件类
        eo.setExcelName(excelName);
        eo.setHeaders(StringUtils.join(map.values().toArray(), ",").split(","));
        eo.setHeaderKeys(StringUtils.join(map.keySet().toArray(), ",").split(","));
        eo.setDataMaps(map); 
        ExcelTemplate template = new ExcelTemplate();
        template.export(response, eo);

导出模板如下:

import java.io.IOException;

import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFPalette;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;


public class ExcelTemplate{

    private static final Logger logger = Logger.getLogger(ExcelTemplate.class);

    private HSSFFont titleFont;

    private HSSFFont headFont;

    private HSSFFont contentFont;

    private HSSFCellStyle titleStyle;

    private HSSFCellStyle headStyle;

    private HSSFCellStyle contentStyle;

    public ExcelTemplateNew() {
    }


    public void export(HttpServletResponse response, EO eo) {
        try {
            response.setHeader("Content-Disposition", "attachment;filename="
                    + URLEncoder.encode(eo.getExcelName(), "UTF-8")
                    + ".xls");
        } catch (UnsupportedEncodingException e) {
            logger.error("生成Excel文件失败:" + e.getMessage(), e);
        }
        response.setContentType("application/x-msdownload");
        response.setCharacterEncoding("UTF-8");
        OutputStream out = null;
        try {
            out = response.getOutputStream();
            HSSFWorkbook workbook = new HSSFWorkbook();
            create(workbook, eo);
            workbook.write(out);
        } catch (Exception e) {
            logger.error("导出文件时发生错误:" + e.getMessage(), e);
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
            } catch (IOException e) {
                logger.error("导出文件时发生错误:" + e.getMessage(), e);
            }
        }

    }

    private void create(final HSSFWorkbook workbook,
            final EO eo) {
        initConfig(workbook);
        //create work set
        HSSFSheet sheet = ExcelUtil.createSheet(workbook,
                eo.getExceltName());

        String headers[] = eo.getHeaders();
        // Title
        HSSFRow titleRow = ExcelUtil.createRow(sheet, 0, 600);
        ExcelUtil.mergeCell(sheet, 0, 0, 0, headers.length);
        HSSFCell titleCell = titleRow.createCell(0);
        titleCell.setCellValue(eo.getReportName());
        titleCell.setCellStyle(titleStyle);

        // Header
        HSSFRow headRow = ExcelUtil.createRow(sheet, 1, 480);

        HSSFCell numCell = headRow.createCell(0);
        numCell.setCellValue("index");
        numCell.setCellStyle(headStyle);

        for (int i = 0; i < headers.length; i++) {
            HSSFCell headCell = headRow.createCell(i + 1);
            headCell.setCellValue(headers[i]);
            headCell.setCellStyle(headStyle);
        }

        List<Map<String, Object>> dataMaps = eo.getDataMaps();
        String headerKeys[] = eo.getHeaderKeys();

        //insert data
        for (int i = 0; i < dataMaps.size(); i++) {
            HSSFRow row = ExcelUtil.createRow(sheet, i + 2, 400);
            HSSFCell rowNum = row.createCell(0);
            rowNum.setCellValue(i + 1);
            rowNum.setCellStyle(contentStyle);
            for (int j = 0; j < headers.length; j++) {
                HSSFCell cell = row.createCell(j + 1);
                cell.setCellValue(dataMaps.get(i).get(headerKeys[j]) == null ? ""
                        : dataMaps.get(i).get(headerKeys[j]).toString());
                cell.setCellStyle(contentStyle);
            }
        }
    }

 
    private void initConfig(HSSFWorkbook workbook) {

        HSSFPalette palette = workbook.getCustomPalette();
        palette.setColorAtIndex((short) 8, (byte) (0xff & 255),
                (byte) (0xff & 255), (byte) (0xff & 255));
        palette.setColorAtIndex((short) 9, (byte) (0xff & 219),
                (byte) (0xff & 229), (byte) (0xff & 241));
        palette.setColorAtIndex((short) 10, (byte) (0xff & 79),
                (byte) (0xff & 129), (byte) (0xff & 189));

        this.titleFont = (HSSFFont) ExcelUtil.createFont(workbook,
                HSSFFont.BOLDWEIGHT_BOLD, HSSFFont.COLOR_NORMAL, (short) 11);

        this.headFont = (HSSFFont) ExcelUtil.createFont(workbook,
                HSSFFont.BOLDWEIGHT_NORMAL, (short) 8, (short) 11);

        this.contentFont = (HSSFFont) ExcelUtil.createFont(workbook,
                HSSFFont.BOLDWEIGHT_NORMAL, HSSFFont.COLOR_NORMAL, (short) 10);

        this.titleStyle = (HSSFCellStyle) ExcelUtil.createCellStyle(workbook,
                (short) 9, HSSFCellStyle.ALIGN_CENTER, titleFont);

        this.headStyle = (HSSFCellStyle) ExcelUtil.createCellStyle(workbook,
                (short) 10, HSSFCellStyle.ALIGN_CENTER, headFont);

        this.contentStyle = (HSSFCellStyle) ExcelUtil.createBorderCellStyle(
                workbook, HSSFColor.WHITE.index, (short) 8,
                HSSFCellStyle.ALIGN_CENTER, contentFont);
    }

    public HSSFFont getTitleFont() {
        return titleFont;
    }

    public void setTitleFont(HSSFFont titleFont) {
        this.titleFont = titleFont;
    }

    public HSSFFont getHeadFont() {
        return headFont;
    }

    public void setHeadFont(HSSFFont headFont) {
        this.headFont = headFont;
    }

    public HSSFFont getContentFont() {
        return contentFont;
    }

    public void setContentFont(HSSFFont contentFont) {
        this.contentFont = contentFont;
    }

    public HSSFCellStyle getTitleStyle() {
        return titleStyle;
    }

    public void setTitleStyle(HSSFCellStyle titleStyle) {
        this.titleStyle = titleStyle;
    }

    public HSSFCellStyle getHeadStyle() {
        return headStyle;
    }

    public void setHeadStyle(HSSFCellStyle headStyle) {
        this.headStyle = headStyle;
    }

    public HSSFCellStyle getContentStyle() {
        return contentStyle;
    }

    public void setContentStyle(HSSFCellStyle contentStyle) {
        this.contentStyle = contentStyle;
    }
}


相关文章推荐

RM0033 reference manual STM32F205xx

  • 2015-04-13 15:28
  • 13.39MB
  • 下载

0033ManyActivity

  • 2014-05-31 16:23
  • 1.18MB
  • 下载

AOJ--0033 Ball

Ball 図のように二股に分かれている容器があります。1 から10 までの番号が付けられた10 個の玉を容器の開口部 A から落とし、左の筒 B か右の筒 C に玉を入れます。板 D は支点 E...

AOJ 0033 Ball (dfs)

题意: 有一个形似央视大楼(Orz)的筒,从A口可以放球,放进去的球可通过挡板DE使其掉进B裤管或C裤管里,现有带1-10标号的球按给定顺序从A口放入,问是否有一种控制挡板的策略可以使B裤管和C...
  • lwt36
  • lwt36
  • 2015-02-21 22:20
  • 338

AOJ 0033 Ball

题意题目我截图下来了,我大致解释下。有编号1到10共10个球,从上方丢下去,入口处可以选择进入左边或者右边,最后10个球全部落下去后如果左右两侧都是从小到大的顺序,则输出YES;否则输出NO。代码一开...
  • NoMasp
  • NoMasp
  • 2015-12-11 22:08
  • 2178

CSS3 传统布局(上)(20160902-0033)

CSS3 传统布局,示例

AOJ 0033: Ball(dfs )

原文地址:点击打开链接 有一个形似央视大楼(Orz)的筒,从A口可以放球,放进去的球可通过挡板DE使其掉进B裤管或C裤管里,现有带1-10标号的球按给定顺序从A口放入,问是否有一种控制挡板的策略可以使...

AOJ 0033 Ball (枚举)

题意: 有一个形似央视大楼(233)的筒,从A口可以放球,放进去的球可通过挡板DE使其掉进B裤管或C裤管里,现有带1-10标号的球按给定顺序从A口放入,问是否有一种控制挡板的策略可以使B裤管和C裤管中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)