Search in sources :

Example 1 with WriterBO

use of com.bc.pmpheep.back.bo.WriterBO in project pmph by BCSquad.

the class ExcelHelper method fromDecPositionBOList.

/**
 * 根据教材遴选表业务对象(DecPositionBO)集合创建工作簿,适用于主编/副主编导出
 *
 * @param dataSource
 *            DecPositionBO业务对象集合
 * @param sheetName
 *            工作表名称
 * @return 根据Map集合创建的工作簿
 */
public Workbook fromDecPositionBOList(List<DecPositionBO> dataSource, String sheetName) {
    Workbook workbook = new HSSFWorkbook();
    Sheet sheet = workbook.createSheet(sheetName);
    Row header = sheet.createRow(0);
    header.createCell(0).setCellValue("书序");
    header.createCell(1).setCellValue("书名");
    header.createCell(2).setCellValue("版次");
    header.createCell(3).setCellValue("序号");
    header.createCell(4).setCellValue("姓名");
    header.createCell(5).setCellValue("申报单位");
    header.createCell(6).setCellValue("编写职位");
    // 设置表头样式
    headerStyleSetup(workbook, 1);
    /**
     * 重新设置头背景颜色end **
     */
    for (int i = 0; i < 7; i++) {
        Cell cell = workbook.getSheet(sheetName).getRow(0).getCell(i);
        CellStyle style = cell.getCellStyle();
        style.setFillBackgroundColor(HSSFColorPredefined.GREY_50_PERCENT.getIndex());
        cell.setCellStyle(style);
    }
    /**
     * 重新设置头背景颜色end **
     */
    /* 设置行计数器 */
    int rowCount = 1;
    if (null != dataSource && !dataSource.isEmpty()) {
        /* 遍历list中的对象 */
        for (DecPositionBO bo : dataSource) {
            List<WriterBO> writers = bo.getWriters();
            if (CollectionUtil.isEmpty(writers)) {
                continue;
            }
            Integer zhuBianTotalNum = 0;
            Integer fuZhuBianTotalNum = 0;
            for (WriterBO writer : writers) {
                Integer chosenPosition = writer.getChosenPosition();
                if (null != chosenPosition && (chosenPosition == 12 || chosenPosition == 4)) {
                    zhuBianTotalNum++;
                } else if (null != chosenPosition && (chosenPosition == 10 || chosenPosition == 2)) {
                    fuZhuBianTotalNum++;
                }
            }
            Row row = sheet.createRow(rowCount);
            row.createCell(0).setCellValue(bo.getSort());
            row.createCell(1).setCellValue(bo.getTextbookName());
            row.createCell(2).setCellValue(bo.getTextbookRound());
            int writerNum = 1;
            for (WriterBO writer : writers) {
                if (writerNum > 1) {
                    row = sheet.createRow(rowCount);
                    row.createCell(0);
                    row.createCell(1);
                    row.createCell(2);
                }
                row.createCell(3).setCellValue(String.valueOf(writerNum));
                row.createCell(4).setCellValue(writer.getRealname());
                row.createCell(5).setCellValue(writer.getChosenOrgName());
                Integer chosenPosition = writer.getChosenPosition();
                if (null == chosenPosition) {
                    continue;
                }
                String position = "";
                String rank = "";
                if (null != writer.getRank()) {
                    rank = String.valueOf(writer.getRank());
                }
                if (null != chosenPosition && chosenPosition == 12) {
                    position = "主编 " + zhuBianTotalNum + "-" + rank + ",数字编委";
                } else if (null != chosenPosition && chosenPosition == 4) {
                    position = "主编 " + zhuBianTotalNum + "-" + rank;
                } else if (null != chosenPosition && chosenPosition == 10) {
                    position = "副主编 " + fuZhuBianTotalNum + "-" + rank + ",数字编委";
                } else if (null != chosenPosition && chosenPosition == 2) {
                    position = "副主编 " + fuZhuBianTotalNum + "-" + rank;
                } else if (null != chosenPosition && chosenPosition == 9) {
                    position = "编委,数字编委";
                } else if (null != chosenPosition && chosenPosition == 1) {
                    position = "编委";
                }
                row.createCell(6).setCellValue(position);
                writerNum++;
                rowCount++;
            }
        }
    }
    int[] maxLength = { 2, 12, 2, 2, 5, 15, 9 };
    return dataStyleSetup(workbook, 1, rowCount, new ColumnProperties(7, maxLength));
}
Also used : WriterBO(com.bc.pmpheep.back.bo.WriterBO) HSSFWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) Workbook(org.apache.poi.ss.usermodel.Workbook) HSSFWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) DecPositionBO(com.bc.pmpheep.back.bo.DecPositionBO) Row(org.apache.poi.ss.usermodel.Row) CellStyle(org.apache.poi.ss.usermodel.CellStyle) Sheet(org.apache.poi.ss.usermodel.Sheet) Cell(org.apache.poi.ss.usermodel.Cell)

Example 2 with WriterBO

use of com.bc.pmpheep.back.bo.WriterBO in project pmph by BCSquad.

the class ExcelHelperTest method makeDecPositionBOList.

private List<DecPositionBO> makeDecPositionBOList() {
    List<DecPositionBO> list = new ArrayList<>(3);
    for (int i = 1; i < 4; i++) {
        DecPositionBO bo = new DecPositionBO();
        bo.setSort(i);
        bo.setTextbookName("书" + i);
        bo.setTextbookRound(i + 5);
        List<WriterBO> writers = new ArrayList<>();
        for (int j = 0; j < 10; j++) {
            WriterBO writer = new WriterBO();
            writer.setRealname("随机姓名" + j);
            writer.setChosenOrgName("随机学校" + j);
            switch(j % 4) {
                case 0:
                    writer.setChosenPosition(1);
                    break;
                case 1:
                    writer.setChosenPosition(2);
                    break;
                case 2:
                    writer.setChosenPosition(4);
                    break;
                case 3:
                    writer.setChosenPosition(8);
                    break;
            }
            writer.setRank(j + 1);
            writers.add(writer);
        }
        bo.setWriters(writers.toString());
        list.add(bo);
    }
    return list;
}
Also used : ArrayList(java.util.ArrayList) WriterBO(com.bc.pmpheep.back.bo.WriterBO) DecPositionBO(com.bc.pmpheep.back.bo.DecPositionBO)

Aggregations

DecPositionBO (com.bc.pmpheep.back.bo.DecPositionBO)2 WriterBO (com.bc.pmpheep.back.bo.WriterBO)2 ArrayList (java.util.ArrayList)1 HSSFWorkbook (org.apache.poi.hssf.usermodel.HSSFWorkbook)1 Cell (org.apache.poi.ss.usermodel.Cell)1 CellStyle (org.apache.poi.ss.usermodel.CellStyle)1 Row (org.apache.poi.ss.usermodel.Row)1 Sheet (org.apache.poi.ss.usermodel.Sheet)1 Workbook (org.apache.poi.ss.usermodel.Workbook)1