Closed sghgithua closed 1 month ago
import cn.hutool.core.util.StrUtil; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.handler.CellWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.holder.WriteTableHolder; import lombok.extern.slf4j.Slf4j; import org.apache.poi.common.usermodel.HyperlinkType; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.Hyperlink; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Workbook;
import java.util.List;
@Slf4j public class HyperlinkUtils implements CellWriteHandler {
private static final String LINK = "HYPERLINK"; public HyperlinkUtils() { } @Override public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) { int curColIndex = cell.getColumnIndex(); if (curColIndex != 1) { return; } if (!cell.getCellType().equals(CellType.STRING)) { return; } String value = cell.getStringCellValue(); if (!value.contains(LINK)) { return; } String title = StrUtil.subBetween(value, "\",\"","\")"); cell.setCellFormula(value); cell.setCellValue(title); cell.setCellStyle(createHyperlinkStyle(writeSheetHolder.getParentWriteWorkbookHolder().getCachedWorkbook())); } private static CellStyle createHyperlinkStyle(Workbook workbook) { CellStyle cellStyle = workbook.createCellStyle(); Font font = workbook.createFont(); font.setUnderline(Font.U_SINGLE); font.setColor(IndexedColors.BLUE.getIndex()); cellStyle.setFont(font); return cellStyle; }
}
import cn.hutool.core.util.StrUtil; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.handler.CellWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.holder.WriteTableHolder; import lombok.extern.slf4j.Slf4j; import org.apache.poi.common.usermodel.HyperlinkType; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.Hyperlink; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Workbook;
import java.util.List;
@Slf4j public class HyperlinkUtils implements CellWriteHandler {
}