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

响应式网站设计实训总结网站开发市场成本

响应式网站设计实训总结,网站开发市场成本,立码软件做网站,做网站的前途通过easyexcel导出列表数据 根据列表内容自适应宽高。 文件名冲突&#xff0c;修改文件名递增设置。 依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version&…

通过easyexcel导出列表数据

根据列表内容自适应宽高。

文件名冲突,修改文件名递增设置。

依赖

            <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel-core</artifactId><version>${easyexcel.version}</version><scope>compile</scope></dependency>
  <easyexcel.version>3.3.2</easyexcel.version>

 具体实现

 public void export() {//获取列表集合,根据自己业务逻辑获取List<Api> list = this.list();String fileName = "服务发布.xlsx";String filePath = getUniqueFilePath(fileName);EasyExcel.write(filePath, ApiExcel.class)
.registerWriteHandler(new CustomCellWriteWidthConfig())
//.registerWriteHandler(new CustomCellWriteHeightConfig())
.sheet("服务发布列表").doWrite(list);}

 判断文件是否存在。

 private static String getUniqueFilePath(String baseFileName) {File file = new File(baseFileName);int counter = 1;while (file.exists()) {String newFileName = String.format("%s(%d).xlsx", baseFileName.replace(".xlsx", ""), counter);file = new File(newFileName);counter++;}return file.getAbsolutePath();}

自适应列宽类

package com.cait.fm.console.common;import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.metadata.data.CellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Sheet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** @author: jg* @date: 2024-12-06* @description:*/
public class CustomCellWriteWidthConfig extends AbstractColumnWidthStyleStrategy {private final Map<Integer, Map<Integer, Integer>> CACHE = new HashMap<>();@Overrideprotected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer integer,Boolean isHead) {boolean needSetWidth = isHead || !cellDataList.isEmpty();if (needSetWidth) {Map<Integer, Integer> maxColumnWidthMap = CACHE.computeIfAbsent(writeSheetHolder.getSheetNo(), k -> new HashMap<>());Integer columnWidth = this.dataLength(cellDataList, cell, isHead);if (columnWidth > 0) {if (columnWidth > 10 && columnWidth <= 20) {columnWidth = 20;} else if (columnWidth <= 10) {columnWidth = 10;}Integer maxColumnWidth = maxColumnWidthMap.get(cell.getColumnIndex());if (maxColumnWidth == null || columnWidth > maxColumnWidth) {maxColumnWidthMap.put(cell.getColumnIndex(), columnWidth);Sheet sheet = writeSheetHolder.getSheet();sheet.setColumnWidth(cell.getColumnIndex(), 256 * columnWidth + 184);}}}}private Integer dataLength(List<WriteCellData<?>> cellDataList, Cell cell, Boolean isHead) {if (isHead) {return cell.getStringCellValue().getBytes().length;} else {CellData<?> cellData = cellDataList.get(0);CellDataTypeEnum type = cellData.getType();if (type == null) {return -1;} else {switch (type) {case STRING:// 换行符(数据需要提前解析好)String stringValue = cellData.getStringValue();if (stringValue.contains("\n")) {int index = stringValue.indexOf("\n");return index != -1 ? stringValue.substring(0, index).getBytes().length + 1 : stringValue.getBytes().length + 1;} else if (stringValue.contains("(")) {return stringValue.getBytes().length;} else {return stringValue.getBytes().length;}case BOOLEAN:return cellData.getBooleanValue().toString().getBytes().length;case NUMBER:return cellData.getNumberValue().toString().getBytes().length;default:return -1;}}}}}

 自适应行高

public class CustomCellWriteHeightConfig extends AbstractRowHeightStyleStrategy {/*** 默认高度*/private static final Integer DEFAULT_HEIGHT = 300;@Overrideprotected void setHeadColumnHeight(Row row, int relativeRowIndex) {}@Overrideprotected void setContentColumnHeight(Row row, int relativeRowIndex) {Iterator<Cell> cellIterator = row.cellIterator();if (!cellIterator.hasNext()) {return;}// 默认为 1 行高度int maxHeight = 1;while (cellIterator.hasNext()) {Cell cell = cellIterator.next();if (cell.getCellType() == CellType.STRING) {String value = cell.getStringCellValue();for (int i = 0; i < value.length(); i += 10) {if (i + 10 < value.length()) {value = value.substring(0, i) + "\n" + value.substring(i, i + 10) + value.substring(i + 10);} else {value = value.substring(0, i) + "\n" + value.substring(i);}}if (value.contains("\n")) {int length = value.split("\n").length;maxHeight = Math.max(maxHeight, length);}}}row.setHeight((short) (maxHeight * DEFAULT_HEIGHT));}@Overridepublic void afterRowDispose(RowWriteHandlerContext context) {if (context.getHead() != null) {if(ObjectUtils.isEmpty(context.getRelativeRowIndex())){return;}if (Boolean.TRUE.equals(context.getHead())) {this.setHeadColumnHeight(context.getRow(), context.getRelativeRowIndex());} else {this.setContentColumnHeight(context.getRow(), context.getRelativeRowIndex());}}}
}

 

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

相关文章:

  • 网站制作公司有没有版权做游戏的软件
  • 网站服务器搬迁广州网站建设 易企建站
  • 网站后台管理系统制作儋州网站建设制作
  • 国内餐饮设计网站建设软文营销文章案例
  • 网站建设的报价单临桂建设局安全股网站
  • php外贸网站建设seo技术平台
  • 网站建设百度推广说词建站seo怎么赚钱
  • 用软件建网站用wordpress建立的网站吗
  • 南昌网站建设志博成都网站登记备案查询
  • 手机制作网站wordpress突然变慢
  • 桐梓县工程建设交易网站wordpress 字母
  • 手机上可以做网站吗公司网站建设管理制度
  • 一个网站做数据维护3天正常吗制作企业网站方案
  • 国内专业的网站建设公司建一个网站多少费用
  • 前端网站开发工具网站改手机版
  • 网站里的聊天怎么做怎样凡科建设网站
  • 旅游网站建设的经济评价企业定制app
  • 西安学校网站建设价格对象存储 做视频网站
  • 网站备案转入专业的网站制作团队
  • 临海高端营销型网站建设地址百度百科官网
  • 厦门网站设计公司网站建设包含
  • 福建省建设局网站实名制外贸网站建设 广州
  • 网站建设亿玛酷神奇5专注网站平台推广公司
  • 网站推广seo方法成品网站和模板建站
  • 学做静态网站e龙岩官网
  • go语言可以做网站吗租点点电脑租赁公司
  • 安卓开发网站开发阿里云怎么注册域名
  • 东莞建站网站个人主页是什么
  • 网站logo织梦怎么做网站开发发展现状
  • 企业网站都需要备案吗移动广告公司网站建设