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

吴中网站开发建设多少钱南京网站seo

吴中网站开发建设多少钱,南京网站seo,梁山做网站,自助分红网站建设EASYEXCEL导出表格#xff08;有标题、单元格合并#xff09; xlsx格式报表的导出#xff0c;导出的数据存在父子关系#xff0c;即相当于树形数据#xff0c;有单元格合并和标题形式的要求#xff0c;查阅了一些资料#xff0c;总算是弄出来了#xff0c;这里另写一个…EASYEXCEL导出表格有标题、单元格合并 xlsx格式报表的导出导出的数据存在父子关系即相当于树形数据有单元格合并和标题形式的要求查阅了一些资料总算是弄出来了这里另写一个小样简单分享一下关于easyExcel导出具有合并单元格和标题的小结 代码也算记录一下自己的工作学习。 public class BizMergeStrategy extends AbstractMergeStrategy {private MapString, ListRowRangeDto strategyMap;private Sheet sheet;public BizMergeStrategy(MapString, ListRowRangeDto strategyMap) {this.strategyMap strategyMap;}Overrideprotected void merge(Sheet sheet, Cell cell, Head head, Integer integer) {this.sheet sheet;//如果没有标题只有表头的话这里的 cell.getRowIndex() 1if (cell.getRowIndex() 2 cell.getColumnIndex() 0) {/*** 保证每个cell被合并一次如果不加上面的判断因为是一个cell一个cell操作的* 例如合并A2:A3,当cell为A2时合并A2,A3但是当cell为A3时又是合并A2,A3* 但此时A2,A3已经是合并的单元格了*/for (Map.EntryString, ListRowRangeDto entry : strategyMap.entrySet()) {Integer columnIndex Integer.valueOf(entry.getKey());entry.getValue().forEach(rowRange - {//添加一个合并请求sheet.addMergedRegionUnsafe(new CellRangeAddress(rowRange.getStart(),rowRange.getEnd(), columnIndex, columnIndex));});}}}public static MapString, ListRowRangeDto addAnnualMerStrategy(ListContrastIndicatorDeptExcel projectDtoList) {MapString, ListRowRangeDto strategyMap new HashMap();ContrastIndicatorDeptExcel preUser null;for (int i 0; i projectDtoList.size(); i) {ContrastIndicatorDeptExcel curUser projectDtoList.get(i);//如果名字一样将名字合并真正开发中一般不会通过名字这样字段而是通过一些关联的唯一值比如父idif (preUser ! null) {if (curUser.getIndicatorName() preUser.getIndicatorName()){ // 名字相同则合并第一列 // BizMergeStrategy.fillStrategyMap(strategyMap, 0, i1);//如果没有标题只有表头的话这里为 BizMergeStrategy.fillStrategyMap(strategyMap, 1, i);BizMergeStrategy.fillStrategyMap(strategyMap, 1, i1);}}preUser curUser;}return strategyMap;}/*** description: 新增或修改合并策略map* param strategyMap* param key* param index* return*/private static void fillStrategyMap(MapString, ListRowRangeDto strategyMap, String key, int index){ListRowRangeDto rowRangeDtoList strategyMap.get(key) null ? new ArrayList() : strategyMap.get(key);boolean flag false;for (RowRangeDto dto : rowRangeDtoList) {//分段list中是否有end索引是上一行索引的如果有则索引1if (dto.getEnd() index) {dto.setEnd(index 1);flag true;}}//如果没有则新增分段if (!flag) {rowRangeDtoList.add(new RowRangeDto(index, index 1));}strategyMap.put(key, rowRangeDtoList);}/*** description: 表格样式* return*/public static HorizontalCellStyleStrategy CellStyleStrategy(){WriteCellStyle headWriteCellStyle new WriteCellStyle();//设置背景颜色headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());//设置头字体WriteFont headWriteFont new WriteFont();headWriteFont.setFontHeightInPoints((short)13);headWriteFont.setBold(true);headWriteCellStyle.setWriteFont(headWriteFont);//设置头居中headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);//内容策略WriteCellStyle contentWriteCellStyle new WriteCellStyle();//设置 水平居中contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);HorizontalCellStyleStrategy horizontalCellStyleStrategy new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);return horizontalCellStyleStrategy;} }import cn.exrick.xboot.jwaq.entity.contrast.ContrastIndicatorDeptExcel; import cn.exrick.xboot.jwaq.tool.TitleSheetWriteHandler; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Map;RestController RequestMapping(/easyExcelController/ContrastIndicatorDeptExcel) public class EasyExcelController {GetMapping(/excel)public void excel(HttpServletResponse response) throws IOException {MapString, ListRowRangeDto strategyMap BizMergeStrategy.addAnnualMerStrategy(data());try {response.setContentType(application/vnd.ms-excel);response.setCharacterEncoding(utf-8);// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系String filename URLEncoder.encode(用户表测试, UTF-8).replaceAll(\\, %20);response.setHeader(Content-disposition, attachment;filename filename .xlsx);EasyExcel.write(response.getOutputStream(), ContrastIndicatorDeptExcel.class).excelType(ExcelTypeEnum.XLSX).head(ContrastIndicatorDeptExcel.class).registerWriteHandler(new TitleSheetWriteHandler(我是一个小标题,13))// 标题及样式lastCol为标题第0列到底lastCol列的宽度//设置默认样式及写入头信息开始的行数.relativeHeadRowIndex(1).registerWriteHandler(new BizMergeStrategy(strategyMap))// 注册合并策略.registerWriteHandler(BizMergeStrategy.CellStyleStrategy())// 设置样式.sheet(测试).doWrite(data());}catch (Exception e) {e.printStackTrace();response.reset();response.setCharacterEncoding(utf-8);response.setContentType(application/json);response.getWriter().println(打印失败);}}private ListContrastIndicatorDeptExcel data(){ListContrastIndicatorDeptExcel list new ArrayList();ContrastIndicatorDeptExcel ontrastIndicatorDeptExcel new ContrastIndicatorDeptExcel();ontrastIndicatorDeptExcel.setUnit(1);ontrastIndicatorDeptExcel.setIndicatorName(2);ontrastIndicatorDeptExcel.setBigType(3);ContrastIndicatorDeptExcel ontrastIndicatorDeptExcel1 new ContrastIndicatorDeptExcel();ontrastIndicatorDeptExcel1.setUnit(1);ontrastIndicatorDeptExcel1.setIndicatorName(2);ontrastIndicatorDeptExcel1.setBigType(3);ContrastIndicatorDeptExcel ontrastIndicatorDeptExcel2 new ContrastIndicatorDeptExcel();ontrastIndicatorDeptExcel2.setUnit(1);ontrastIndicatorDeptExcel2.setIndicatorName(2);ontrastIndicatorDeptExcel2.setBigType(3);ContrastIndicatorDeptExcel ontrastIndicatorDeptExcel3 new ContrastIndicatorDeptExcel();ontrastIndicatorDeptExcel3.setUnit(1);ontrastIndicatorDeptExcel3.setIndicatorName(2);ontrastIndicatorDeptExcel3.setBigType(3);list.add(ontrastIndicatorDeptExcel);list.add(ontrastIndicatorDeptExcel1);list.add(ontrastIndicatorDeptExcel2);list.add(ontrastIndicatorDeptExcel3);return list;} }public class RowRangeDto {private int start;private int end;public RowRangeDto(int start,int end){this.start start;this.end end;}public int getStart() {return start;}public void setStart(int start) {this.start start;}public int getEnd() {return end;}public void setEnd(int end) {this.end end;} }package cn.exrick.xboot.jwaq.tool;import com.alibaba.excel.write.handler.SheetWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress;public class TitleSheetWriteHandler implements SheetWriteHandler {private String title;private int lastCol;public TitleSheetWriteHandler(String title,int lastCol){this.title title;this.lastCol lastCol;}Overridepublic void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {}Overridepublic void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {Workbook workbook writeWorkbookHolder.getWorkbook();Sheet sheet workbook.getSheetAt(0);//设置标题Row row sheet.createRow(0);row.setHeight((short) 800);Cell cell row.createCell(0);cell.setCellValue(title);CellStyle cellStyle workbook.createCellStyle();cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);cellStyle.setAlignment(HorizontalAlignment.CENTER);Font font workbook.createFont();font.setBold(true);font.setFontHeight((short) 400);cellStyle.setFont(font);cell.setCellStyle(cellStyle);sheet.addMergedRegionUnsafe(new CellRangeAddress(0, 0, 0, lastCol));} }
http://www.sczhlp.com/news/158426/

相关文章:

  • 网站建设有哪些费用晒豆网站建设
  • 爱站网seo综合查询工具wordpress-5.2.1
  • cpa怎么做网站中文图片转wordpress
  • 中文建站模板广州app开发公司排行十强
  • 宁波城乡住房建设厅网站首页大学生做的网站
  • 常州做企业网站的公司长沙市建设局网站
  • HarmonyOS之LocalStorage - 详解
  • ROS2之服务
  • macOS上优雅运行Docker容器
  • qq免费注册网站兰州有哪些互联网公司
  • 中华门窗网怎么做网站可以做cps合作的棋牌网站6
  • 网站备案实名认证域名停域免费观看软件
  • 网站用哪个做门户网站为什么衰落
  • 万州房地产网站建设做网站必须买云虚拟主机吗
  • 网站建设前需求调研表淘宝关键词查询工具
  • 苏州制作公司网站的网站如何用微信支付
  • 更新网站内容长春市网络品牌推广
  • 怎样做 网站做seo网站建设导航栏
  • 玉溪市规划建设局网站php网站开发实验报告
  • 福州网站关键排名网站投稿源码
  • 利用博客做网站排名湖南网站优化外包费用
  • 新乡网站建设哪家好网站导入链接
  • 网站建设上机考试题目学校网站建设有限公司
  • 深圳做网站服务商医院网站做品牌推广需要哪些
  • 中小学建设网站wordpress新闻中心
  • 烟台建网站哪家好学做效果图的网站有哪些
  • 一家只做特卖的网站计算机方面学什么专业好
  • 网站后台上传word遗像制作图片的软件
  • 门户网站html网站对接微信接口
  • 深圳建站程序网站优化要素