网站表格怎么做的/网站优化推广

网站表格怎么做的,网站优化推广,磐安住房和城乡建设部网站,网站的优点文章目录 💡 1. 每个员工一个 Excel 文件✅ 占位符格式📌 Excel 模板📌 Java 代码🔥 关键点 💡 2. 每个员工一个 Sheet✅ 占位符格式📌 Java 代码🔥 关键点 💡 3. 一个 Sheet&#x…

文章目录

    • 💡 1. 每个员工一个 Excel 文件
      • ✅ 占位符格式
      • 📌 Excel 模板
      • 📌 Java 代码
      • 🔥 关键点
    • 💡 2. 每个员工一个 Sheet
      • ✅ 占位符格式
      • 📌 Java 代码
      • 🔥 关键点
    • 💡 3. 一个 Sheet,多个员工
      • ✅ 占位符格式
      • 📌 Excel 模板
      • 📌 Java 代码
      • 🔥 关键点
    • 📌 总结
    • 🚀 最佳实践

在实际开发中,我们经常需要使用 Excel 生成工资条,EasyExcel 提供了 模板填充 功能,使得批量生成工资单变得非常高效。本篇文章将详细讲解 三种常见工资单生成方式,并分析 占位符的正确使用方法


💡 1. 每个员工一个 Excel 文件

适用场景:每个员工的工资单是 独立的 Excel 文件,适用于企业给员工发送工资单的情况。

✅ 占位符格式

  • 使用 {字段名}(不带 .
  • 每个员工的数据 存储在 Map<String, Object>

📌 Excel 模板

员工姓名工资奖金
{name}{salary}{bonus}

📌 Java 代码

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.metadata.WriteSheet;
import java.util.*;public class SalarySheetGenerator {public static void main(String[] args) {List<Employee> employees = List.of(new Employee("张三", 10000, 2000),new Employee("李四", 12000, 2500));for (Employee emp : employees) {String fileName = emp.getName() + "_工资单.xlsx";Map<String, Object> data = new HashMap<>();data.put("name", emp.getName());data.put("salary", emp.getSalary());data.put("bonus", emp.getBonus());// 使用 EasyExcel 生成工资单EasyExcel.write(fileName).withTemplate("salary_template.xlsx").sheet().doFill(data);}}
}

🔥 关键点

占位符 {name}{salary}{bonus} 直接填充,因为 dataMap<String, Object>
每个员工单独生成一个 Excel 文件


💡 2. 每个员工一个 Sheet

适用场景:一个 Excel 文件中,每个员工 单独一个 Sheet,适用于 HR 统一管理工资单。

✅ 占位符格式

  • 使用 {字段名}(不带 .
  • 每个员工的数据 存储在 Map<String, Object>

📌 Java 代码

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.metadata.WriteSheet;
import java.util.*;public class SalarySheetGenerator {public static void main(String[] args) {String fileName = "2024年1月工资.xlsx";List<Employee> employees = List.of(new Employee("张三", 10000, 2000),new Employee("李四", 12000, 2500));// 创建 ExcelWriterExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate("salary_template.xlsx").build();for (Employee emp : employees) {Map<String, Object> data = new HashMap<>();data.put("name", emp.getName());data.put("salary", emp.getSalary());data.put("bonus", emp.getBonus());WriteSheet writeSheet = EasyExcel.writerSheet(emp.getName() + "的工资单").build();excelWriter.fill(data, writeSheet);}excelWriter.finish();}
}

🔥 关键点

每个员工的数据单独放入不同的 Sheet
writeSheet(emp.getName() + "的工资单") 指定 Sheet 名称
数据填充方式与单个 Excel 文件相同,仍然使用 {字段}


💡 3. 一个 Sheet,多个员工

适用场景所有员工的工资条放在同一个 Sheet,适用于企业 HR 统计所有员工工资情况

✅ 占位符格式

  • 使用 {.字段}(带 .
  • 直接填充 List<Employee>

📌 Excel 模板

姓名工资奖金
{.name}{.salary}{.bonus}

📌 Java 代码

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.metadata.WriteSheet;
import java.util.*;public class SalarySheetGenerator {public static void main(String[] args) {String fileName = "工资表.xlsx";List<Employee> employees = List.of(new Employee("张三", 10000, 2000),new Employee("李四", 12000, 2500));// 生成 ExcelEasyExcel.write(fileName).withTemplate("salary_template.xlsx").sheet().doFill(employees);}
}

🔥 关键点

列表填充时,EasyExcel 需要使用 {.字段} 格式
fill(List<Employee>) 让 EasyExcel 自动匹配字段
所有员工工资信息都放在同一个 Sheet


📌 总结

场景占位符格式填充方式
每个人一个 Excel 文件{字段}(无 .fill(Map)
每个人一个 Sheet{字段}(无 .fill(Map)
一个 Sheet,多个员工{.字段}(有 .fill(List<T>)

🚀 最佳实践

单个对象填充(一个人一张工资单) 👉 用 {字段}(无 .
列表数据填充(工资表) 👉 用 {.字段}(有 .

🔗 推荐阅读:EasyExcel 使用指南

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

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

相关文章

编程题-从前序与中序遍历序列构造二叉树(中等-重点)

题目&#xff1a; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 提示: preorder 和 inorder 均 无重复 元素 解法一&#xff08;递归&#xff0…

【Rust中级教程】2.10. API设计原则之受约束性(constrained) Pt.1:对类型进行修改、`#[non_exhaustive]`注解

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 2.10.1. 接口的更改要三思 如果你的接口要做出对用户可见的更改&#xff0c;那么一定要三思…

自动化设备对接MES系统找DeepSeek问方案

项目需要现场的PLC设备HTTP协议JSON格式的方式对接MES系统平台&#xff0c;于是试了一下&#xff1a; 找到的相关资源链接在这里。

量子计算的数学基础:复数、矩阵和线性代数

量子计算是基于量子力学原理的一种新型计算模式,它与经典计算机在信息处理的方式上有着根本性的区别。在量子计算中,信息的最小单位是量子比特(qubit),而不是传统计算中的比特。量子比特的状态是通过量子力学中的数学工具来描述的,因此,理解量子计算的数学基础对于深入学…

京准电钟:NTP精密时钟服务器在自动化系统中的作用

京准电钟&#xff1a;NTP精密时钟服务器在自动化系统中的作用 京准电钟&#xff1a;NTP精密时钟服务器在自动化系统中的作用 NTP精密时钟服务器在自动化系统中的作用非常重要&#xff0c;特别是在需要高精度时间同步的场景中。NTP能够提供毫秒级的时间同步精度&#xff0c;这…

Python实现GO鹅优化算法优化Catboost回归模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 在当今的数据驱动时代&#xff0c;机器学习模型在各种应用中扮演着至关重要的角色。特别是在预测分…

如何在docker上部署前端nginx服务(VUE)

目录结构 clean.sh docker stop rszWeb; docker rm rszWeb; start.sh docker run -d \ --name rszWeb \ -p 7084:80 \ -m 500m \ --privileged=true \ --restart=always \ -v /home/rsz/ui/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/rsz/ui/logs:/meta/logs \ -v /…

可狱可囚的爬虫系列课程 15:防盗链反爬虫的处理

一、防盗链了解 防盗链是一种技术手段&#xff0c;主要用于防止其他网站通过直接链接的方式使用本网站的资源&#xff08;如图片、文件等&#xff09;&#xff0c;从而节省带宽和服务器资源。当其他网站尝试直接链接到受保护的资源时&#xff0c;服务器会根据设置的规则判断请求…

2020年蓝桥杯Java B组第二场题目+部分个人解析

#A&#xff1a;门牌制作 624 解一&#xff1a; public static void main(String[] args) {int count0;for(int i1;i<2020;i) {int ni;while(n>0) {if(n%102) {count;}n/10;}}System.out.println(count);} 解二&#xff1a; public static void main(String[] args) {…

Hadoop架构详解

Hadoop 是一个开源的分布式计算系统&#xff0c;用于存储和处理大规模数据集。Hadoop 主要由HDFS&#xff08;Hadoop Distributed File System&#xff09;、MapReduce、Yarn&#xff08;Jobtracker&#xff0c;TaskTracker&#xff09;三大核心组件组成。其中HDFS是分布式文件…

阿里云ack的创建与实战应用案例

阿里云ack的创建与应用案例 创建前开通ack相关服务&#xff1a;开始创建简单的魔方游戏&#xff0c;熟悉sv与clb自动注册创建部署一个nginx 服务示例&#xff1a;走不同域名访问不同svc资源&#xff1a;为什么需要 Ingress &#xff1f;创建第一个域名的 Deployment和Service。…

MinIO在 Docker中修改登录账号和密码

MinIO在 Docker中修改登录账号和密码 随着云计算和大数据技术的快速发展&#xff0c;对象存储服务逐渐成为企业数据管理的重要组成部分。MinIO 作为一种高性能、分布式的对象存储系统&#xff0c;因其简单易用、高效可靠的特点而备受开发者青睐。然而&#xff0c;在实际应用中…

pycharm编写ai大模型api调用程序及常见错误

这里写目录标题 一级目录1. 访问Django项目&#xff0c;python web url时&#xff0c;报错2. 传参报名&#xff0c;python web url时&#xff0c;报错正确访问结果&#xff1a; 二、购买价格 和 见错误码 一级目录 1. 访问Django项目&#xff0c;python web url时&#xff0c;…

RISCV指令集解析

参考视频&#xff1a;《RISC-V入门&进阶教程》1-4-RV32I基本指令集&#xff08;1&#xff09;_哔哩哔哩_bilibili privilege是特权指令集&#xff0c;有点系统调用的感觉&#xff0c;要走内核态。unprivilege指令集有点像普通的函数调用。

Java中的TreeMap

TreeMap继承自AbstractMap&#xff0c;并实现了NavigableMap接口(NavigableMap继承自SortedMap接口)。底层的数据结构是红黑树&#xff0c;按照键的自然排序或者自定义实现的规则排序&#xff0c;实现元素的有序性。 特点 元素是有序的&#xff1a;按照key的自然排序或者是自…

前端Javascrip后端Net6前后分离文件上传案例(完整源代码)下载

文件上传功能在项目开发中非常实用&#xff0c;本案例前端用Javascrip实现&#xff0c;后端用Net6实现 前端Javascrip后端Net6前后分离文件上传案例&#xff08;完整源代码&#xff09; 下载链接 https://download.csdn.net/download/luckyext/90437795?spm1001.2014.3001.5…

DeepSeek行业应用实践报告-智灵动力【112页PPT全】

DeepSeek&#xff08;深度搜索&#xff09;近期引发广泛关注并成为众多企业/开发者争相接入的现象&#xff0c;主要源于其在技术突破、市场需求适配性及生态建设等方面的综合优势。以下是关键原因分析&#xff1a; 一、技术核心优势 开源与低成本 DeepSeek基于开源架构&#xf…

Day 51 卡玛笔记

这是基于代码随想录的每日打卡 647. 回文子串 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 示例 1&#xff1a; 输入&#xff1a;s &q…

结构型模式---外观模式

概念 外观模式是一种结构型设计模式&#xff0c;它的核心思想是为复杂的子系统提供一个统一的接口&#xff0c;简化客户端与子系统的交互。外观模式通过引入一个高层接口&#xff0c;隐藏子系统的复杂性&#xff0c;使客户端更容易使用。 适用场景 用于客户端无需具体操作子…

多通道数据采集和信号生成的模块化仪器如何重构飞机电子可靠性测试体系?

飞机的核心电子系统包括发电与配电系统&#xff0c;飞机内部所有设备和系统之间的内部数据通信系统&#xff0c;以及用于外部通信的射频设备。其他所有航空电子元件都依赖这些关键总线进行电力传输或数据通信。在本文中&#xff0c;我们将了解模块化仪器&#xff08;无论是PCIe…