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

建设工程施工合同司法解释二网站seo监测

建设工程施工合同司法解释二,网站seo监测,好玩网页传奇,南通制作网站公司因为项目很多地方需要使用导出数据excel的功能#xff0c;所以开发了一个简易的统一生成导出方法。 依赖 dependency groupIdorg.apache.poi/groupId artifactIdpoi-ooxml/artifactId version4.0.1/version…        因为项目很多地方需要使用导出数据excel的功能所以开发了一个简易的统一生成导出方法。 依赖 dependency     groupIdorg.apache.poi/groupId     artifactIdpoi-ooxml/artifactId     version4.0.1/version /dependency dependency     groupIdorg.apache.poi/groupId     artifactIdpoi/artifactId     version4.0.1/version /dependency 定义注解 标题栏注解  import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.IndexedColors;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target({ElementType.METHOD, ElementType.FIELD}) Retention(RetentionPolicy.RUNTIME) public interface ExcelTitle {/*** 标题名称* return 默认空*/String titleName() ;/*** 标题背景* return 默认空*/IndexedColors titleBack() default IndexedColors.WHITE;/*** 标题文字大小* return 默认空*/short titleSize() default 14;/*** 标题文字颜色* return 黑色*/HSSFColor.HSSFColorPredefined titleColor() default HSSFColor.HSSFColorPredefined.BLACK;/*** 边框格式* return 细*/BorderStyle borderStyle() default BorderStyle.THIN;/*** 边框颜色* return 默认*/IndexedColors borderColor() default IndexedColors.AUTOMATIC;/*** 标题文字加粗* return 黑色*/boolean boldFont() default true;/*** 是否忽略* return 黑色*/boolean ignore() default false;/*** 排序* return 0*/int order() default 0; } 数据栏注解 import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.VerticalAlignment;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** description excel导出结果配置*/ Target({ElementType.METHOD, ElementType.FIELD}) Retention(RetentionPolicy.RUNTIME) public interface ExcelProperty {/*** 背景* return 默认空*/IndexedColors textBack() default IndexedColors.WHITE;/*** 内容类型,查看* link org.apache.poi.ss.usermodel.BuiltinFormats* return 默认TEXT*/String textType() default TEXT;/*** 文字大小* return 默认18*/short textSize() default 12;/*** 数据属于key:value时可以自定义转换,配置格式为key1value;key2value2;.....* return 默认空*/String textKv() default ;/*** 文字颜色* return 黑色*/HSSFColor.HSSFColorPredefined textColor() default HSSFColor.HSSFColorPredefined.BLACK;/*** 水平位置* return 水平居中*/HorizontalAlignment horizontal() default HorizontalAlignment.CENTER;/*** 垂直位置* return 垂直居中*/VerticalAlignment vertical() default VerticalAlignment.CENTER;/*** 文字加粗* return 不加粗*/boolean boldFont() default false; }代码 标题栏格式生成 解析对象属性的ExcelTitle注解的信息并设置相关选项。 private CellStyle initTitleCellStyle(SXSSFWorkbook wb, Field titleField) {// 单元格样式XSSFCellStyle cellStyle (XSSFCellStyle) wb.createCellStyle();//水平居中cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);ExcelTitle excelTitle titleField.getAnnotation(ExcelTitle.class);//背景颜色if(excelTitle ! null excelTitle.titleBack() ! null){cellStyle.setFillForegroundColor(excelTitle.titleBack().getIndex());} else {cellStyle.setFillForegroundColor(IndexedColors.WHITE1.getIndex());}//文字的设置字体颜色Font font wb.createFont();if(excelTitle ! null excelTitle.titleColor() ! null){font.setColor(excelTitle.titleColor().getIndex());} else {font.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());}font.setBold(excelTitle ! null excelTitle.boldFont());font.setFontHeightInPoints(excelTitle ! null excelTitle.titleSize() ! 0 ? excelTitle.titleSize(): 12);cellStyle.setFont(font);//设置为文本格式cellStyle.setDataFormat(BuiltinFormats.getBuiltinFormat(TEXT));cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);//边框if(excelTitle ! null excelTitle.borderStyle() ! null){cellStyle.setBorderTop(excelTitle.borderStyle());cellStyle.setBorderBottom(excelTitle.borderStyle());cellStyle.setBorderLeft(excelTitle.borderStyle());cellStyle.setBorderRight(excelTitle.borderStyle());} else {cellStyle.setBorderTop(BorderStyle.THIN);cellStyle.setBorderBottom(BorderStyle.THIN);cellStyle.setBorderLeft(BorderStyle.THIN);cellStyle.setBorderRight(BorderStyle.THIN);}//边框if(excelTitle ! null excelTitle.borderColor() ! null){cellStyle.setTopBorderColor(excelTitle.borderColor().getIndex());cellStyle.setBottomBorderColor(excelTitle.borderColor().getIndex());cellStyle.setLeftBorderColor(excelTitle.borderColor().getIndex());cellStyle.setRightBorderColor(excelTitle.borderColor().getIndex());} else {cellStyle.setTopBorderColor(IndexedColors.RED.getIndex());cellStyle.setBottomBorderColor(IndexedColors.RED.getIndex());cellStyle.setLeftBorderColor(IndexedColors.RED.getIndex());cellStyle.setRightBorderColor(IndexedColors.RED.getIndex());}return cellStyle;} 数据栏格式生成 解析对象属性的ExcelProperty注解的信息并设置相关选项。 private CellStyle initCellStyle(SXSSFWorkbook wb, Field titleField) {// 单元格样式垂直居中XSSFCellStyle cellStyle (XSSFCellStyle) wb.createCellStyle();ExcelProperty excelProperty titleField.getAnnotation(ExcelProperty.class);//水平居中if(excelProperty ! null excelProperty.horizontal() ! null) {cellStyle.setAlignment(excelProperty.horizontal());}//垂直居中if(excelProperty ! null excelProperty.vertical() ! null) {cellStyle.setVerticalAlignment(excelProperty.vertical());}//背景颜色if(excelProperty ! null excelProperty.textBack() ! null){cellStyle.setFillForegroundColor(excelProperty.textBack().getIndex());}//文字的设置字体颜色Font font wb.createFont();if(excelProperty ! null excelProperty.textColor() ! null){font.setColor(excelProperty.textColor().getIndex());}font.setBold(excelProperty ! null excelProperty.boldFont());font.setFontHeightInPoints(excelProperty ! null excelProperty.textSize() ! 0 ? excelProperty.textSize(): 12);cellStyle.setFont(font);cellStyle.setBorderTop(BorderStyle.THIN);cellStyle.setBorderBottom(BorderStyle.THIN);cellStyle.setBorderLeft(BorderStyle.THIN);cellStyle.setBorderRight(BorderStyle.THIN);//设置为文本格式cellStyle.setDataFormat(BuiltinFormats.getBuiltinFormat(excelProperty ! null excelProperty.textType() ! null ? excelProperty.textType() : TEXT));cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);return cellStyle;} 同时提供一个默认的配置 private CellStyle initDefaultCellStyle(SXSSFWorkbook wb) {// 单元格样式垂直居中XSSFCellStyle cellStyle (XSSFCellStyle) wb.createCellStyle();//水平居中cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//设置为文本格式cellStyle.setDataFormat(BuiltinFormats.getBuiltinFormat(TEXT));//文字的设置Font font wb.createFont();font.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex()); //设置字体颜色return cellStyle;} 解析数据生成sheet private SXSSFWorkbook creatBook(ListExcelSheetVo list) {//创建工作簿SXSSFWorkbook wb new SXSSFWorkbook();for (ExcelSheetVo excelSheetVo : list) {createSXSSFSheet(excelSheetVo, wb);}return wb;}private SXSSFSheet createSXSSFSheet(ExcelSheetVo excelSheetVo, SXSSFWorkbook wb) {//创建工作簿SXSSFSheet sxssfSheet wb.createSheet(excelSheetVo.getSheetName());//设置默认的行宽sxssfSheet.setDefaultColumnWidth(20);//设置morning的行高不能设置太小可以不设置sxssfSheet.setDefaultRowHeight((short) 300);//设置morning的单元格格式//CellStyle style initCellStyle(wb);//标题单元格格式//CellStyle titleStyle initTitleCellStyle(wb, excelSheetVo.getDataClass());//初始化标题栏initTitle(wb, sxssfSheet, excelSheetVo.getDataClass());initSheetData(wb, sxssfSheet, excelSheetVo, 1);return sxssfSheet;}private void initSheetData(SXSSFWorkbook wb, SXSSFSheet sxssfSheet, ExcelSheetVo excelSheetVo, int dataStartLine) {if (CollectionUtils.isEmpty(excelSheetVo.getSheetData())) {return;}try {for (Object dataObject : excelSheetVo.getSheetData()) {SXSSFRow row sxssfSheet.createRow(dataStartLine);Field[] fields dataObject.getClass().getDeclaredFields();ListField fieldList Arrays.stream(fields).filter(item - item.getAnnotation(ExcelTitle.class) ! null !item.getAnnotation(ExcelTitle.class).ignore()).sorted(Comparator.comparingInt(item - {ExcelTitle excelTitle item.getAnnotation(ExcelTitle.class);return excelTitle.order();})).collect(Collectors.toList());for (int i 0; i fieldList.size(); i) {//根据title的值对应的值SXSSFCell cell row.createCell(i);Field field fieldList.get(i);cell.setCellStyle(initCellStyle(wb, field));field.setAccessible(true);cell.setCellValue(dealValue(field, dataObject));}dataStartLine;}} catch (Exception e){LOGGER.error(生成数据异常, e);}} key:value数据解析 private String dealValue(Field field, Object dataObject) throws IllegalAccessException {ExcelProperty excelProperty field.getAnnotation(ExcelProperty.class);Object value field.get(dataObject);if(value null){return null;}if(excelProperty ! null StringUtils.isNotEmpty(excelProperty.textKv())){String[] kvs excelProperty.textKv().split(;);MapString, String map new HashMap();for(String str: kvs){map.put(str.split()[0], str.split()[1]);}return map.get(value.toString());}return value.toString();} 导出设置 /*** 导出excel数据** param response 亲求返回* param list 每个sheet页的数据一个elist表示一个sheet页* param fileName 导出的名称* return 结果*/public boolean creatExcel(HttpServletResponse response, ListExcelSheetVo list, String fileName) {SXSSFWorkbook wb creatBook(list);//导出数据try {//设置Http响应头告诉浏览器下载这个附件response.reset();response.setCharacterEncoding(utf-8);response.setContentType(application/vnd.ms-excel);//名称要从新进行 ISO8859-1 编码否则会文件名称会乱码response.setHeader(Content-Disposition, attachment;Filename encodeFileName(fileName) .xlsx);OutputStream outputStream response.getOutputStream();ByteArrayOutputStream baos new ByteArrayOutputStream();wb.write(baos);outputStream.write(baos.toByteArray());baos.flush();baos.close();outputStream.close();} catch (Exception ex) {LOGGER.error(导出excel失败, ex);}return true;}private String encodeFileName(String fileName) {try {//fileName java.net.URLEncoder.encode(fileName, UTF-8);fileName URLDecoder.decode(fileName, UTF-8);return new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);} catch (UnsupportedEncodingException e) {return 未命名;}} 测试 定义数据实体 数据标题和数据定义 Data public class TestExcelVo {ExcelTitle(titleName 名称, titleColor HSSFColor.HSSFColorPredefined.BLUE, borderStyle BorderStyle.HAIR, titleSize 12, titleBack IndexedColors.YELLOW)ExcelProperty()private String name;ExcelTitle(titleName 年龄, titleColor HSSFColor.HSSFColorPredefined.GREEN, borderStyle BorderStyle.HAIR, titleBack IndexedColors.RED)ExcelProperty(textType 0, textColor HSSFColor.HSSFColorPredefined.RED)private Integer age;ExcelTitle(titleName 性别, titleColor HSSFColor.HSSFColorPredefined.BLUE, titleSize 12, titleBack IndexedColors.GREEN)ExcelProperty(textKv 0男;1女, textBack IndexedColors.BROWN)private Integer sex;ExcelTitle(titleName 描述, titleColor HSSFColor.HSSFColorPredefined.BLUE, titleBack IndexedColors.GREEN)ExcelProperty(boldFont true, textSize 18)private String des; } sheet的数据定义  Data public class ExcelSheetVoT {/*** 每一个sheet页得名称*/private String sheetName;/*** 每个sheet里面得数据* 其中Object中得注解必须时包含 ExcelTitle 和 ExcelProperties*/private ListT sheetData;/*** 数据对象得类型*/private Class dataClass; } 测试代码 RestController RequestMapping(value exceExport) public class ExcelExportController {GetMapping(testExport)public void testExport(HttpServletResponse response){String fileName 测试sheet;ListExcelSheetVo sheetVoList new ArrayList();for(int i 0; i 3; i){sheetVoList.add(createSheetData(i));}new ExcelCreateUtil().creatExcel(response, sheetVoList, fileName);}private ExcelSheetVoTestExcelVo createSheetData(int index){ExcelSheetVoTestExcelVo excelSheetVo new ExcelSheetVo();excelSheetVo.setDataClass(TestExcelVo.class);excelSheetVo.setSheetName(sheet index);ListTestExcelVo testExcelVos createTestExcelVo(new Random().nextInt(30) 10, sheet index);excelSheetVo.setSheetData(testExcelVos);return excelSheetVo;}private ListTestExcelVo createTestExcelVo(int size, String sheetName){ListTestExcelVo testExcelVos new ArrayList();for(int i 0; i size; i){TestExcelVo testExcelVo new TestExcelVo();testExcelVo.setName(sheetName - i);testExcelVo.setAge(i);testExcelVo.setSex(i % 2);testExcelVo.setDes(哈哈哈哈哈 i);testExcelVos.add(testExcelVo);}return testExcelVos;} } 结果
http://www.w-s-a.com/news/60295/

相关文章:

  • 拉米拉网站建设乐清网站网站建设
  • 获取网站全站代码申请免费域名的方法
  • 网站制作建设公司哪家好wordpress仪表盘打不开
  • 最佳网站制作模板用手机能创建网站吗
  • 只做黑白摄影的网站网站建设好后给领导作介绍
  • 移动手机网站建设如何做网站地图视频
  • 手工业网站怎么做成都酒吧设计公司
  • .net 网站生成安装文件目录重庆网站建设沛宣网络
  • 怎么做钓鱼网站吗百度免费域名注册网站
  • 如何给网站做外部优化今年国内重大新闻
  • 有没有做生物科技相关的网站弄一个app大概多少钱
  • 五金加工东莞网站建设怎么做网页跳转
  • 淄博网站优化价格wordpress没有小工具
  • 自己搭建服务器做视频网站wordpress发布文章 发布
  • php仿博客园网站阅读分享网站模板
  • 网站宣传的劣势域名注册长沙有限公司
  • 怎样联系自己建设网站企业怎样做好网站建设
  • 网站制作需求分析电商网站建设浩森宇特
  • 淄博网站建设招聘摄影网站建设的论文
  • 怎么把凡科网里做的网站保存成文件网站建设研究的意义
  • 服务器2003怎么做网站网站建设服务器的配置
  • 高校网站建设方案网站推广软件下载安装免费
  • 重庆没建网站的企业网站开发软件 连接SQL数据库
  • 百度申诉网站沉默是金
  • 如何自己建网站wordpress图片延时加载
  • 甘肃省住房和城乡建设厅注册中心网站千博企业网站管理系统2013
  • 西餐厅网站模板seo搜索引擎优化ppt
  • 什么做的网站吗wordpress注册可见插件
  • 献县做网站价格可以提升自己的网站
  • 如何修改网站title建设网站只能是公司