给定(x,y)填充数据,前端怎么实现?

给定这样一个数据,根据week和segment填表,如果让我用excel实现,这是很容易的,那让前端去实现呢?需要用什么办法?

[{
	"teacherId": "TE156441313011606541662",
	"address": "3年级2班",
	"week": 1,
	"teacherName": "李艳艳",
	"segment": 1,
	"subjectName": "语文"
}, {
	"teacherId": "TE156441313011606541662",
	"address": "3年级2班",
	"week": 1,
	"teacherName": "李艳艳",
	"segment": 3,
	"subjectName": "语文"
}, {
	"teacherId": "TE156441313011606541662",
	"address": "3年级2班",
	"week": 2,
	"teacherName": "李艳艳",
	"segment": 7,
	"subjectName": "语文"
}, {
	"teacherId": "TE156441313011606541662",
	"address": "3年级2班",
	"week": 2,
	"teacherName": "李艳艳",
	"segment": 2,
	"subjectName": "语文"
}, {
	"teacherId": "TE156441313011606541662",
	"address": "3年级2班",
	"week": 3,
	"teacherName": "李艳艳",
	"segment": 8,
	"subjectName": "语文"
}, {
	"teacherId": "TE156441313011606541662",
	"address": "3年级2班",
	"week": 3,
	"teacherName": "李艳艳",
	"segment": 4,
	"subjectName": "语文"
}, {
	"teacherId": "TE156441313011606541662",
	"address": "3年级2班",
	"week": 4,
	"teacherName": "李艳艳",
	"segment": 7,
	"subjectName": "语文"
}, {
	"teacherId": "TE156441313011606541662",
	"address": "3年级2班",
	"week": 4,
	"teacherName": "李艳艳",
	"segment": 3,
	"subjectName": "语文"
}, {
	"teacherId": "TE156441313011606541662",
	"address": "3年级2班",
	"week": 5,
	"teacherName": "李艳艳",
	"segment": 7,
	"subjectName": "语文"
}, {
	"teacherId": "TE156441313011606541662",
	"address": "3年级2班",
	"week": 5,
	"teacherName": "李艳艳",
	"segment": 8,
	"subjectName": "语文"
}]

WeekEntity.java

package test.testEasyPoi;

import cn.afterturn.easypoi.excel.annotation.Excel;

/**
 * @author *cruder
 * @version 1.0
 * @since 1521/1/23 19:11
 */
public class WeekEntity {

    @Excel(name = "星期一", height = 15, width = 10, isImportField = "true_st")
    private String monday;
    @Excel(name = "星期二", height = 15, width = 10, isImportField = "true_st")
    private String tuesday;
    @Excel(name = "星期三", height = 15, width = 10, isImportField = "true_st")
    private String wednesday;
    @Excel(name = "星期四", height = 15, width = 10, isImportField = "true_st")
    private String thursday;
    @Excel(name = "星期五", height = 15, width = 10, isImportField = "true_st")
    private String friday;
    @Excel(name = "星期六", height = 15, width = 10, isImportField = "true_st")
    private String saturday;
    @Excel(name = "星期天", height = 15, width = 10, isImportField = "true_st")
    private String sunday;
    
    public WeekEntity(String monday, String tuesday, String wednesday, String thursday, String friday, String saturday, String sunday) {
        this.monday = monday;
        this.tuesday = tuesday;
        this.wednesday = wednesday;
        this.thursday = thursday;
        this.friday = friday;
        this.saturday = saturday;
        this.sunday = sunday;
    }

    public void setCourseInfo(int week,String courseInfo){
        switch (week){
            case 1:this.monday = courseInfo;break;
            case 2:this.tuesday = courseInfo;break;
            case 3:this.wednesday = courseInfo;break;
            case 4:this.thursday = courseInfo;break;
            case 5:this.friday = courseInfo;break;
            case 6:this.saturday = courseInfo;break;
            case 7:this.monday = courseInfo;break;
            default:break;
        }
    }
    
}

    static void test06() throws IOException {
        //模拟一个教师一个星期有10节课
        JSONArray jsonArray = new JSONArray();
        for (int i = 1; i <=5 ; i++) {
            for (int j = 0; j <2 ; j++) {
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("teacherName","李艳艳");
                jsonObject.put("teacherId","TE156441313011606541662");
                jsonObject.put("subjectName","语文");
                jsonObject.put("address","3年级2班");
                jsonObject.put("week",i);
                jsonObject.put("segment",(int)(1+Math.random()*8));
                jsonArray.add(jsonObject);
            }
        }
        System.out.println(JSON.toJSONString(jsonArray));

        List<WeekEntity> weekEntities = new ArrayList<>();
        for (int i = 1; i <=8 ; i++) {
            weekEntities.add(new WeekEntity("","","","","","",""));
        }
        for (int i = 0; i <jsonArray.size() ; i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            int segment = jsonObject.getIntValue("segment");
            int week = jsonObject.getIntValue("week");
            String courseInfo = jsonObject.getString("subjectName")+"\n"+jsonObject.getString("address");
            weekEntities.get(segment - 1).setCourseInfo(week,courseInfo);
        }

        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("教师课程表","教师课程表"),WeekEntity.class,weekEntities);
        //原始方法
        Sheet sheet = workbook.createSheet("教师课程表2");
        Row row1 = sheet.createRow(0);
        Cell titleCell = row1.createCell(0);
        titleCell.setCellValue("五年级二班课程表");
        CellStyle styleTitle =getStyle(workbook,(short)14,"楷体");
        //标题合并
        CellRangeAddress regionTitle = new CellRangeAddress(0, 0, 0, 6);
        sheet.addMergedRegion(regionTitle);
        titleCell.setCellStyle(styleTitle);
        Row row2 = sheet.createRow(1);
        for (int i = 0; i <7 ; i++) {
            Cell cell = row2.createCell(i);
            cell.setCellValue("星期"+(i+1));
            cell.setCellStyle(getStyle(workbook,(short)12,"仿宋"));
        }

        for (int i = 0; i <jsonArray.size() ; i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            Row row = sheet.getRow(jsonObject.getIntValue("segment")+1);
            if(row==null){
                row = sheet.createRow(jsonObject.getIntValue("segment")+1);
            }
            Cell cell = row.createCell(jsonObject.getIntValue("week")-1);
            cell.setCellValue(jsonObject.getString("subjectName")+"\n"+jsonObject.getString("address"));
            CellStyle cellStyle = getStyle(workbook, (short) 10, "仿宋");
            //自动换行
            cellStyle.setWrapText(true);
            cell.setCellStyle(cellStyle);
        }
        FileOutputStream fos = new FileOutputStream("D:/教师课程表.xls");
        workbook.write(fos);
        fos.close();
    }

输出结果:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值