I18nCellWriteHandler.java 1.4 KB
package com.neotel.webbox.util;

import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.write.handler.CellWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.ss.usermodel.Row;

import java.util.ArrayList;
import java.util.List;

public class I18nCellWriteHandler implements CellWriteHandler {
    @Override
    public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer columnIndex, Integer relativeRowIndex, Boolean isHead) {
        if (isHead) {
            List<String> originHeadNames = head.getHeadNameList();
            List<String> newHeadNameList = new ArrayList<>();
            if (CollectionUtils.isNotEmpty(originHeadNames)) {
                for (String originHeadName : originHeadNames) {
                    String headName = originHeadName;
                    if(originHeadName.startsWith("$")){
                        //需要进行转换
                        headName = originHeadName;
                    }
                    newHeadNameList.add(headName);
                }
                head.setHeadNameList(newHeadNameList);
            }
        }
        CellWriteHandler.super.beforeCellCreate(writeSheetHolder, writeTableHolder, row, head, columnIndex, relativeRowIndex, isHead);
    }
}