package org.example.handler;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import cn.hutool.core.collection.CollUtil;
import org.apache.poi.common.usermodel.HyperlinkType;
import org.apache.poi.ss.usermodel.*;
import org.example.CacheMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.write.handler.AbstractCellWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
public class CustomCellWriteHandler extends AbstractCellWriteHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(CustomCellWriteHandler.class);
@Override
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,
List<CellData> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
// 这里可以对cell进行任何操作
LOGGER.info("fieldName => {}",head.getFieldName());
LOGGER.info("relativeRowIndex => {}",relativeRowIndex);
LOGGER.info("第{}行,第{}列写入完成。", cell.getRowIndex(), cell.getColumnIndex());
// if (isHead && cell.getColumnIndex() == 0) { // 对第一行第一列的头超链接
// CreationHelper createHelper = writeSheetHolder.getSheet().getWorkbook().getCreationHelper();
// Hyperlink hyperlink = createHelper.createHyperlink(HyperlinkType.URL);
// hyperlink.setAddress("https://github.com/alibaba/easyexcel");
// cell.setHyperlink(hyperlink);
// }
Set<String> cache = CacheMap.getCache();
if(CollUtil.isEmpty(cache)){
LOGGER.warn("cache is empty....");
return;
}
Workbook workbook = writeSheetHolder.getSheet().getWorkbook();
String fieldName = head.getFieldName();
if (!isHead && cache.contains(fieldName)){ // 头为 filePath 的列设置附件相对地址
CreationHelper createHelper = workbook.getCreationHelper();
Font font = workbook.createFont();
CellStyle cellStyle = workbook.createCellStyle();
Hyperlink hyperlink = createHelper.createHyperlink(HyperlinkType.FILE); // 类型设置为 FILE
String url = "https://lmg.jj20.com/up/allimg/tp10/22022312542M617-0-lp.jpg";
hyperlink.setAddress(url); // 附件相对地址,必须使用反斜杠
cell.setHyperlink(hyperlink);
font.setColor(IndexedColors.BLUE.getIndex());
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);
}
}
}
设置超链接
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 文章来自:http://blog.csdn.net/snowdream86/article/details/677...
- 超链接设置 什么类型的公众号可以添加超链接? 订阅号(每天可以发文章,一次最多发8篇): 可跳转至内链(即整个微信...