All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.shaohj.sstool.poiexpand.common.bean.write.tag.IfTagData Maven / Gradle / Ivy

package com.github.shaohj.sstool.poiexpand.common.bean.write.tag;

import com.github.shaohj.sstool.poiexpand.common.consts.SaxExcelConst;
import com.github.shaohj.sstool.poiexpand.common.consts.TagEnum;
import com.github.shaohj.sstool.core.util.ExprUtil;
import com.github.shaohj.sstool.core.util.StrUtil;
import com.github.shaohj.sstool.poiexpand.common.bean.write.WriteSheetData;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFSheet;

import java.util.Map;

/**
 * 编  号:
 * 名  称:IfTagData
 * 描  述:if表达式标签,表达书为真,才会解析标签内的内容
 * 完成日期:2019/6/19 23:47
 * @author:felix.shao
 */
public class IfTagData extends TagData{

    private boolean isExprTrue(Map params){
        String exprStr = getRealExpr();
        Object exprValue = ExprUtil.getExprStrValue(params, exprStr);
        boolean isFlag = null == exprValue || StrUtil.isEmpty(exprValue.toString()) ? false : true;
        return isFlag;
    };

    @Override
    public String getRealExpr() {
        return null != value ?
                String.valueOf(value).replace(SaxExcelConst.TAG_KEY + TagEnum.IF_TAG.getKey(), "").trim()
                : "";
    }

    @Override
    public void writeTagData(Workbook writeWb, SXSSFSheet writeSheet, WriteSheetData writeSheetData,
                             Map params, Map writeCellStyleCache) {
        if(isExprTrue(params)){
            childTagDatas.stream().forEach(childTagData -> {
                childTagData.writeTagData(writeWb, writeSheet, writeSheetData, params, writeCellStyleCache);
            });
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy