package com.qianwen.core.excel.extend.head; import com.alibaba.excel.metadata.CellData; 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 java.util.List; import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.util.PropertyPlaceholderHelper; /* loaded from: blade-starter-excel-9.3.0.0-SNAPSHOT.jar:org/springblade/core/excel/extend/head/I18nHeaderCellWriteHandler.class */ public class I18nHeaderCellWriteHandler implements CellWriteHandler { private final MessageSource messageSource; private final PropertyPlaceholderHelper.PlaceholderResolver placeholderResolver; private final PropertyPlaceholderHelper propertyPlaceholderHelper = new PropertyPlaceholderHelper("{", "}"); public I18nHeaderCellWriteHandler(final MessageSource messageSource, final PropertyPlaceholderHelper.PlaceholderResolver placeholderResolver) { this.messageSource = messageSource; this.placeholderResolver = placeholderResolver; } public I18nHeaderCellWriteHandler(MessageSource messageSource) { this.messageSource = messageSource; this.placeholderResolver = placeholderName -> { return messageSource.getMessage(placeholderName, (Object[]) null, LocaleContextHolder.getLocale()); }; } public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer columnIndex, Integer relativeRowIndex, Boolean isHead) { if (isHead.booleanValue()) { List originHeadNameList = head.getHeadNameList(); if (CollectionUtils.isNotEmpty(originHeadNameList)) { List i18nHeadNames = (List) originHeadNameList.stream().map(headName -> { return this.propertyPlaceholderHelper.replacePlaceholders(headName, this.placeholderResolver); }).collect(Collectors.toList()); head.setHeadNameList(i18nHeadNames); } } } public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) { } public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) { } public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) { } }