随手记1.0

news2024/9/24 12:26:59

easyexcel多级表头导出各级设置样式(继承HorizontalCellStyleStrategy实现)

package com.example.wxmessage.entity;

import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;

/**
 * @author chenyuhuan
 * @ClassName CellStyleStrategy.java
 * @Description TODO
 * @createTime 2023年12月01日
 */
public class CellStyleStrategy extends HorizontalCellStyleStrategy {


    private final WriteCellStyle headWriteCellStyle;

    public CellStyleStrategy(WriteCellStyle headWriteCellStyle) {
        this.headWriteCellStyle = headWriteCellStyle;
    }

    @Override
    protected void setHeadCellStyle(CellWriteHandlerContext context) {


        // 根据行索引为不同级别的表头应用不同样式
        if (context.getRowIndex() == 0) {
         
            headWriteCellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
            headWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);


        } else if (context.getRowIndex() == 1) {
      
            headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
            headWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
        }

        if (stopProcessing(context)) {
            return;
        }
        WriteCellData<?> cellData = context.getFirstCellData();
        WriteCellStyle.merge(this.headWriteCellStyle, cellData.getOrCreateStyle());
    }
}


###########################调用###############################
  EasyExcel.write(response.getOutputStream(), ParamWorkdaysExportExcel.class)
    .registerWriteHandler(new CellStyleStrategy(new WriteCellStyle()))
    .sheet("模板")
    .doWrite(data);

image.png1701659747655.png

image.png

修改默认滚动条样式
  ::-webkit-scrollbar {
    color: transparent;
    height: 3px;
    width: 3px;
  }
  :hover::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.2);
    border-radius: 6px;
    -webkit-box-shadow: inset 0 0 10px transparent;
  }


  修改el-table
  /deep/ .el-table{
  border-radius: 8px 8px 8px 8px;
  overflow: hidden;
  border: 1px solid #e6e6e6;
}
/deep/ .el-table::before{
  height: 0;
}
/deep/ .el-table::after{
  height: 0;
}

js比对时间



     daysBetweenDates(date1, date2) {
      // 将日期字符串转换为Date对象
      const d1 = new Date(date1)
      const d2 = new Date(date2)

      // 计算毫秒差
      const diffInMs = Math.abs(d2 - d1)

      // 转换为天数
      return Math.ceil(diffInMs / (1000 * 60 * 60 * 24))
    },

vue2 复制文本功能

# 复制

   async copyText(value) {
      try {
        // 检查浏览器是否支持 Clipboard API
        if (navigator.clipboard && navigator.clipboard.writeText) {
          await navigator.clipboard.writeText(value)
          this.feedback = '复制成功'
          this.$message({
            message: '复制成功',
            type: 'success'
          })
        } else {
          this.feedback = '浏览器不支持 Clipboard API'
          this.$message({
            message: '复制失败',
            type: 'error'
          })
        }
      } catch (error) {
        console.error('复制失败', error)
        this.feedback = '复制失败'
        this.$message({
          message: '复制失败',
          type: 'error'
        })
      }
    },

使用第三方插件 vue2

npm install vue-clipboard2 --save

在main文件引入

import Clipboard from 'vue-clipboard2'

Vue.use(Clipboard)

使用封装方法
opyText(value) {
      if (!value) {
        return
      }
      const that = this
      this.$copyText(value).then(
        function(e) {
          console.log('copy arguments e:', e)
          that.$message({
            message: '复制成功',
            type: 'success'
          })
        },
        function(e) {
          console.log('copy arguments e:', e)
          that.$message({
            message: '复制失败',
            type: 'error'
          })
        }
      )
      
    },

使用方法

<el-button type="primary" @click="copyText(text)">复制</el-button>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1989514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索 Amazon Q Developer 那些有趣的功能

我在 McKinsey 2024 年 5 月 30 日提供的一项名为“The state of AI in early 2024-Gen AI adoption spikes and starts to generate value”的调研中读到这么一句话&#xff1a;人工智能在组织中最常见的两个使用职能是&#xff1a;“市场营销和销售”以及“产品和服务开发”&…

vue3-ts:husky + prettier / 代码格式化工具

一、Prettier简介 Prettier是一个流行的代码格式化工具&#xff0c;它的主要作用是帮助开发者自动规范化代码的格式&#xff0c;提高代码的可读性和一致性。Prettier通过解析代码并使用自己的规则重新打印它&#xff0c;以确保代码风格的一致性和符合预设的格式化标准。 二、…

计网学习(四)——网络层

一、网际协议IP 互联网采用的设计思路&#xff1a;网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务”&#xff0c;即IP数据报在网络中传输时是不可靠的服务&#xff0c;可能会出现数据丢失等情况TCP/IP体系中网络层常常被称为网际层或IP层与IP协议一起使用…

35分钟教你从0到1,水出SCI(精品),学术裁缝必修课_来自B站水论文的程序猿

系列文章目录 文章目录 系列文章目录一、抽象理解二、具体做法1、什么是Baseline(基础实验&#xff09;2、怎么和导师说3、怎么做压低baseline 4、怎么写 一、抽象理解 一篇论文A:西红柿炒鸡蛋 一篇论文B:芹菜炒肉 你就可以:西红柿炒肉 二、具体做法 1、什么是Baseline(基础…

视频压缩文件太大了怎么缩小?6个视频压缩技巧,速度收藏起来!

高清视频文件&#xff0c;尤其是那些以 1080p 和 720p 清晰度为特征的视频&#xff0c;通常都拥有相当大的体积&#xff0c;会占据大量计算机存储空间。因此&#xff0c;为了更好地将它们进行分享和存储&#xff0c;您可能需要对它们进行压缩&#xff0c;以减小它们的尺寸。然而…

【秋招笔试】2024-08-07-YT游戏(研发岗)-三语言题解(CPP/Python/Java)

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 本次的题目比较典,…

资料分析6-其他类

一、拉动增长、增量贡献率和容斥问题 1. 拉动增长 拉动增长部分增量/整体前期&#xff0c;即x/A 例题1&#xff08;2018 年陕西&#xff09;&#xff1a;2017 年&#xff0c;我国电信业务收入12620 亿元&#xff0c;比上年增长6.4%&#xff0c;增速同比提高1 个百分点。……2…

递归:计算思维的核心

引言 人类对这个世界的认识是从特例到普遍&#xff0c;从具体到抽象&#xff0c;从简单到复杂的&#xff0c;是一个递推&#xff08;Iterative&#xff09;的过程。这种人类固有的认知与思维方式令我们可以轻易的理解具体的事物&#xff0c;但同时却限制了我们的抽象能力和大局…

【电控笔记z6】无感文献综述

高频注入 afabeta注入 lq/ld越大统好 凸极性大反电动势ZVCD pwm电压向量为主 增加动态特性 设计隆博戈估测器 高频注入: lq/ld比较大 运用在低转速 到高速的时候 , 切换到model_base的方法进行反电动势侦测 smo :速度无法很低 有个极限 受杂讯影响大 高速时候用 总结 用spm …

ArrayList集合源码解读(一)

ArrayList集合源码解读&#xff08;一&#xff09; 前言 笔者在阅读网上众多的ArrayList源码解读时发现他们都是以1.8版本的来进行讲解&#xff0c;并且很多都是囫囵吞枣&#xff0c;看的人一脸懵逼。 其实现在的很多公司都换成了17版本的jdk。笔者决定自己写一个ArrayList集…

网工内推 | 国企运维工程师,华为认证优先,最高年薪20w

01 上海陆家嘴物业管理有限公司 &#x1f537;招聘岗位&#xff1a;IT运维工程师 &#x1f537;岗位职责&#xff1a; 1、负责对公司软、硬件系统、周边设备、桌面系统、服务器、网络基础环境运行维护、故障排除。 2、负责对各部门软件操作、网络安全进行检查、指导。 3、负责…

14.Lambda表达式、可变参数

一.Lambda表达式 1.1 函数式接口 1.什么是函数式接口 在Java中&#xff0c;函数式接口是指只包含单个抽象方法的接口&#xff0c;但它也可以有其他方法&#xff0c;例如默认方法和静态方法。函数式接口可以使用Lambda表达式或方法引用来创建该接口的实例。Java 8引入了函数式…

分享一个基于SpringBoot的大学生创新能力培养平台Java(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

七夕表白代码包

目录 1.像素爱心代码 2.心动爱心代码 3.问答样式代码 1.像素爱心代码 今年的最火的当然是像素风&#xff0c;一个一个小方块拼成的爱心超级可爱。 (1)桌面新建一个文本档.txt (2)输入以下代码,可以直接复制 <!DOCTYPE html><html><head><meta chars…

Vue项目通过宝塔部署之后,页面刷新后浏览器404页面

目录 报错 解决方法 报错 将vue项目在宝塔上部署&#xff0c; 当项目挂载到服务器上去&#xff0c;进行浏览器的访问&#xff0c;是能正常访问的&#xff0c;可是当我们在浏览器上进行刷新之后&#xff0c;浏览器会给我们返回一个404的页面。 解决方法 &#xff08;1&#…

如何利用 LNMP 搭建 WordPress 站点

作者 乐维社区&#xff08;forum.lwops.cn&#xff09; 许远 在这个信息爆炸的时代&#xff0c;拥有一个能够迅速传达信息、展示个性、并能够与世界互动的在线平台&#xff0c;已成为企业和个人的基本需求。WordPress&#xff0c;以其无与伦比的易用性和强大的扩展性&#xff0…

Redis5-缓存

目录 什么是缓存 添加Redis缓存 缓存更新策略 三种策略 数据库和缓存不一致的解决方案 缓存穿透 缓存雪崩 缓存击穿 缓存工具封装 什么是缓存 缓存是数据交换的缓冲区&#xff08;Cache&#xff09;&#xff0c;是存贮数据的临时地方&#xff0c;一般读写性能较高 多…

【机器学习】BP神经网络中的链式法则

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 BP神经网络中的链式法则1. 引言2. 链式法则基础2.1 什么是链式法则&#xff1f;…

springboot mybatis plus 固定查询条件及可选查询条件的组合查询,使用QueryWrapper.and()来解决。

1、我们在写查询SQL的时候&#xff0c;经常会碰到&#xff0c;比如&#xff0c;同一个类别下的某一个编号的物料信息&#xff0c;或者是同一批次的物料库存问题等等。 所属类别fid物料编号bm物料批次pc110.01.0220240807110.01.0320240807 210.02.0120240805 2、那么我…

定点数的运算

目录 1.定点数的移位运算 1.1算数移位 数学含义&#xff1a; 规律总结&#xff1a; 1.2逻辑移位 1.3循环移位 不带进位位 带进位位 2.定点数的加减运算 3.定点数的乘除运算 3.1原码 一位乘法 除法 3.2补码 一位乘法 除法 1.定点数的移位运算 1.1算数移位 数学…