当前位置: 首页 > news >正文

网站服务器租用 配置求网站建设合伙人

网站服务器租用 配置,求网站建设合伙人,手工制作大全创意废物利用,接单做网站的背景&#xff1a; 网上大部分都不能直接使用&#xff0c;为此总结一个方便入手且可用的工具&#xff0c;用自定义注解实现 依赖包&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>…

背景:

网上大部分都不能直接使用,为此总结一个方便入手且可用的工具,用自定义注解实现
依赖包:

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.4</version>
</dependency>

实现过程:

1.自定义ExcelRemark注解

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelRemark {/*** 文本内容*/String value( ) default "";/*** 批注行高, 一般不用设置* 这个参数可以设置不同字段 批注显示框的高度*/int remarkRowHigh() default 0;/*** 批注列宽, 根据导出情况调整* 这个参数可以设置不同字段 批注显示框的宽度*/int remarkColumnWide() default 0;
}

2.DTO

public class regionDo {@ExcelProperty("省份")@ExcelRemark(value = "必填")private String province;@ExcelIgnoreprivate String provinceCode;@ExcelProperty("地市")@ExcelRemark(value = "必填")private String city;
}

3.批注处理类

public class CommentCellWriteHandler implements CellWriteHandler {private final Map<Integer, ExcelComment> notationMap;public CommentCellWriteHandler(Map<Integer, ExcelComment> notationMap) {this.notationMap = notationMap;}@Overridepublic void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {//表头批注if (isHead){Sheet sheet = writeSheetHolder.getSheet();//画布Drawing<?> drawingPatriarch = sheet.createDrawingPatriarch();if (!CollectionUtils.isEmpty(notationMap) && notationMap.containsKey(cell.getColumnIndex())){ExcelComment excelComment = notationMap.get(cell.getColumnIndex());if (Objects.nonNull(excelComment)){Comment comment = drawingPatriarch.createCellComment(new XSSFClientAnchor(0, 0, 0, 0, (short) cell.getColumnIndex(), 0, (short) excelComment.getRemarkColumnWide(), 1));comment.setString(new XSSFRichTextString(excelComment.getRemarkValue()));cell.setCellComment(comment);}}}}/*** 获取批注Map**/public static Map<Integer, ExcelComment> getNotationMap(Class<?> clazz) {Map<Integer, ExcelComment> notationMap = new HashMap<>();Field[] fields = clazz.getDeclaredFields();//不使用下面方法,就必须指定@ExcelProperty的indexint index = -1;for (Field field : fields) {++index;if (!field.isAnnotationPresent(ExcelRemark.class)) {//不需要批注 并且 是无需导出字段则 索引回归if (field.isAnnotationPresent(ExcelIgnore.class)) {--index;}continue;}//批注存放实体ExcelComment excelComment = new ExcelComment();//获取字段批注注解ExcelRemark ExcelRemark = field.getAnnotation(ExcelRemark.class);excelComment.setRemarkValue(ExcelRemark.value());excelComment.setRemarkColumnWide(ExcelRemark.remarkColumnWide());notationMap.put(index, excelComment);}return notationMap;}}

5.注册器

EasyExcel.write(response.getOutputStream(), RegionDo.class).registerWriteHandler(new CommentCellWriteHandler(CommentCellWriteHandler.getNotationMap(RegionDo.class))).sheet("sheet1")..doWrite(regionDoList)

引用:
https://blog.csdn.net/qq_43049310/article/details/130697234
https://blog.csdn.net/m0_61013974/article/details/134947917

http://www.yayakq.cn/news/960931/

相关文章:

  • 河南网站优化外包服务上海景点
  • 商业网站建设案例课程网站建设应考虑哪些方面的问题
  • 网站做跳转链接的好处如何让网站打不开 解析
  • 实名网站空间如何打击网站
  • 重庆网站制作公司多少钱做的网站在百度搜索不到
  • asp图片源码网站搜索引擎平台排名
  • 有个电商网站模板网页设计页面布局结构
  • 怎么做交易猫钓鱼网站棋牌软件开发源代码
  • 网站后台更新后主页没有变化wordpress 满屏主题
  • 海城网站设计用小程序做视频网站
  • 视频收费网站怎么做上海网络营销策划
  • 北京专业做网站网页制作软件html
  • 吉安seo网站快速排名html5手机网站整套模板
  • 中国十佳企业网站设计公司电子商务网站的网站架构
  • 重庆网站建设cq600wordpress模版下载
  • 哪些网站可以做问卷调查网站制作费用多少
  • 正规的app网站开发网站建设公司广告标题语
  • 深圳建站程序网站开发雷小天
  • 制作网站需要学什么软件有哪些内容甘孜商城网站建设
  • 上海做网站的公司排名wordpress主页 无法连接数据库
  • 做python一个网站房地产新闻稿
  • 百度智能云网站建设微信如何做有趣的短视频网站
  • 郑州建设网站推广公司手机网页制作尺寸
  • 制作门户网站专业做辅助的网站
  • 网站开发数据库连接失败免费跨境电商网站
  • 网站建设通俗讲网站建设与管理课程心得体会
  • 网站设计价格dede网站架设教程
  • 成品网站前台源码网页制作人员的工作内容
  • 百达翡丽手表网站wordpress 社交网站吗
  • vue 做网站 seowordpress 分段