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

java中用SXSSFWorkbook把多个字段的list数据和单个实体dto导出到excel如何导出到多个sheet页详细实例?

要使用SXSSFWorkbook将多个字段的List数据和单个实体DTO导出到多个Sheet页,你可以按照以下步骤进行操作:

  1. 创建一个SXSSFWorkbook对象作为工作簿。
  2. 针对每个字段的List数据,创建一个新的Sheet页,并将数据写入该Sheet页。
  3. 创建一个新的Sheet页,用于单个实体DTO的数据。
  4. 将单个实体DTO的数据写入该Sheet页。
  5. 将工作簿写入Excel文件中。

以下是一个示例代码,展示了如何根据上述步骤导出多个Sheet页:

import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFCell;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

public class ExcelExporter {
    public static void exportToExcel(List<String> field1Data, List<Integer> field2Data, List<DTO> dtoList) {
        // 创建工作簿
        SXSSFWorkbook workbook = new SXSSFWorkbook();

        // 导出字段1的数据到Sheet1
        exportFieldData(workbook, field1Data, "Field 1 Data");

        // 导出字段2的数据到Sheet2
        exportFieldData(workbook, field2Data, "Field 2 Data");

        // 导出DTO数据到Sheet3
        exportDTOData(workbook, dtoList);

        try (FileOutputStream fileOut = new FileOutputStream("output.xlsx")) {
            // 将工作簿写入文件
            workbook.write(fileOut);
            System.out.println("Excel导出完成!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭工作簿
            workbook.dispose();
        }
    }

    private static void exportFieldData(SXSSFWorkbook workbook, List<?> fieldData, String sheetName) {
        // 创建Sheet页
        SXSSFSheet sheet = workbook.createSheet(sheetName);

        // 写入数据
        for (int i = 0; i < fieldData.size(); i++) {
            SXSSFRow row = sheet.createRow(i);
            SXSSFCell cell = row.createCell(0);
            cell.setCellValue(fieldData.get(i).toString());
        }
    }

    private static void exportDTOData(SXSSFWorkbook workbook, List<DTO> dtoList) {
        // 创建Sheet页
        SXSSFSheet sheet = workbook.createSheet("DTO Data");

        // 写入列标题
        SXSSFRow headerRow = sheet.createRow(0);
        headerRow.createCell(0).setCellValue("Field1");
        headerRow.createCell(1).setCellValue("Field2");
        // ...

        // 写入数据
        int rowIndex = 1;
        for (DTO dto : dtoList) {
            SXSSFRow dataRow = sheet.createRow(rowIndex++);
            dataRow.createCell(0).setCellValue(dto.getField1());
            dataRow.createCell(1).setCellValue(dto.getField2());
            // ...
        }
    }

    public static class DTO {
        private String field1;
        private int field2;

        public String getField1() {
            return field1;
        }

        public void setField1(String field1) {
            this.field1 = field1;
        }

        public int getField2() {
            return field2;
        }

        public void setField2(int field2) {
            this.field2 = field2;
        }
    }
}

在上述示例中,我们创建了一个ExcelExporter类,并定义了两个导出字段的List数据(field1Data和field2Data),以及一个包含DTO对象的List(dtoList)。

exportToExcel方法根据步骤将这些数据导出到多个Sheet页。首先,我们创建一个SXSSFWorkbook对象作为工作簿。

然后,调用exportFieldData方法将field1Data和field2Data分别写入名为"Field 1 Data"和"Field 2 Data"的Sheet页中。

接下来,我们调用exportDTOData方法,将dtoList中的DTO数据写入名为"DTO Data"的Sheet页中。在该方法中,我们首先创建列标题行,然后逐行写入DTO数据。

最后,我们将工作簿写入文件,并在必要时关闭工作簿。

相关文章:

java中用SXSSFWorkbook把多个字段的list数据和单个实体dto导出到excel如何导出到多个sheet页详细实例?

要使用SXSSFWorkbook将多个字段的List数据和单个实体DTO导出到多个Sheet页&#xff0c;你可以按照以下步骤进行操作&#xff1a; 创建一个SXSSFWorkbook对象作为工作簿。针对每个字段的List数据&#xff0c;创建一个新的Sheet页&#xff0c;并将数据写入该Sheet页。创建一个新…...

ES基础操作

1.创建索引 在 Postman 中&#xff0c;向 ES 服务器发 PUT 请求 &#xff1a; http://127.0.0.1:9200/shopping 后台日志 重复发送 PUT 请求添加索引 &#xff1a; http://127.0.0.1:9200/shopping &#xff0c;会返回错误信息 : 2.获取单个索引相关信息 在 Postman 中&#…...

PCIE超高速实时运动控制卡在六面外观视觉检测上的应用

市场应用背景 XPCIE1028超高速实时运动控制卡在六面外观检测高速视觉筛选中的应用&#xff0c;结合正运动技术提供的专用筛选机调试软件&#xff0c;可实现15000pcs/分钟的IO触发检测速度&#xff0c;只需简单参数设置&#xff0c;搭配图像采集硬件和视觉处理软件&#xff0c;…...

ctfshow web入门 php特性 web108-web112

1.web108 strrev() 反转字符串 <?php echo strrev("Hello world!"); // 输出 "!dlrow olleH" ?> ereg 存在空字符截断(只会匹配%00前面的字符)&#xff0c;这个函数匹配到为true&#xff0c;没有匹配到为false,877为0x36d的十进制数值 payload: …...

数据可视化是什么?有什么工具?

一、什么是数据可视化&#xff1f; 数据可视化是一种通过图表、图形、地图和其他视觉元素将数据呈现给用户的方式。它是将复杂的数据转化为易于理解和解释的视觉形式的过程。数据可视化旨在帮助用户发现数据中的模式、趋势和关联&#xff0c;并从中获得洞察力。 数据可视化的…...

PC端版面设计之尾部设计

1、莫拉王子&#xff0c;底部就放了一个返回顶部 2 麻辣王子就放了一个认证--放了产地和得到的奖 3 阿芙:就是精油 4阿芙放的是品牌故事 5 这里可以做微博粉丝群体 6 基本返回底部是一个标配&#xff0c;点一下就可以反悔了 7 加一下旺旺店铺 8 BetyBoop的底部 9 底部 10 返回底…...

neo4jd3拓扑节点显示为节点标签(自定义节点显示)

需求描述&#xff1a;如下图所示&#xff0c;我的拓扑图中有需要不同类型的标签节点&#xff0c;我希望每个节点中显示的是节点的标签 在官方示例中&#xff0c;我们可以看到&#xff0c;节点里面是可以显示图标的&#xff0c;现在我们想将下面的图标换成我们自定义的内容 那…...

网络安全(黑客)了解学习路线

谈起黑客&#xff0c;可能各位都会想到&#xff1a;盗号&#xff0c;其实不尽然&#xff1b;黑客是一群喜爱研究技术的群体&#xff0c;在黑客圈中&#xff0c;一般分为三大圈&#xff1a;娱乐圈 技术圈 职业圈。 娱乐圈&#xff1a;主要是初中生和高中生较多&#xff0c;玩网恋…...

【CSS】CSS 特性 ( CSS 优先级 | 优先级引入 | 选择器基本权重 )

一、CSS 优先级 1、优先级引入 定义 CSS 样式时 , 可能出现 多个 类型相同的 规则 定义在 同一个元素上 , 如果 CSS 选择器 相同 , 执行 CSS 层叠性 , 根据 就近原则 选择执行的样式 , 如 : 出现两个 div 标签选择器 , 都设置 color 文本颜色 ; <style>div {color: re…...

Linux Shell 搜索命令 grep

grep 是一个强大的文本搜索工具&#xff0c;用于在文件或标准输入中查找匹配指定模式的行。 它的基本语法是&#xff1a; grep [options] pattern [file...]其中&#xff0c;pattern 是要搜索的模式&#xff0c;可以是普通字符串或使用正则表达式表示的模式。file 是要被搜索…...

【C进阶】指针(一)

大家好&#xff0c;我是深鱼~ 【前言】&#xff1a; 指针的主题&#xff0c;在初阶指针章节已经接触过了&#xff0c;我们知道了指针的概念&#xff1a; 1.指针就是个变量&#xff0c;用来存放地址&#xff0c;地址的唯一标识一块内存空间&#xff08;指针变量&#xff09;&a…...

bug复刻,解决方案---在改变div层级关系时,导致传参失败

问题描述&#xff1a; 在优化页面时&#xff0c;为了实现网页顶部遮挡效果&#xff08;内容滚动&#xff0c;顶部导航栏不随着一起滚动&#xff0c;并且覆盖&#xff09;&#xff0c;做法是将内容都放在一个div里面&#xff0c;为这个新的div设置样式&#xff0c;margin-top w…...

2023年Java核心技术面试第九篇(篇篇万字精讲)

目录 十七 . 并发相关基础概念 17.1 线程安全 17.2 保证线程安全的两个方法 17.2.1 封装 17.2.2 不可变 17.2.2.1 final 和 immutable解释 17.3 线程安全的基本特性 17.3.1 原子性&#xff08;Atomicity&#xff09; 17.3.2 可见性&#xff08;Visibility&#xff09; 17.3.3 有…...

解码Python JSON:从基础到高级,掌握使用的精髓

摘要&#xff1a; JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;在Python中通过json模块可以方便地处理JSON数据。本文将从JSON的基础概念讲解开始&#xff0c;逐步深入介绍json模块的各种功能和用法&#xff0c;带您从入门到…...

Qt --- 自定义工具类 持续更新... ...

QSettings使用 .h文件 #ifndef UTIL_H #define UTIL_H#include <QSettings>class Util {public:// 配置文件读写 {{static bool writeInit(QString path, QString user_key, QString user_value);static bool readInit(QString path, QString user_key, QString &u…...

GO语言圣经 第二章习题

练习2.1 向tempconv包添加类型、常量和函数用来处理Kelvin绝对温度的转换&#xff0c;Kelvin 绝对零度是−273.15C&#xff0c;Kelvin绝对温度1K和摄氏度1C的单位间隔是一样的。 conv.go package tempconv// CToF converts a Celsius temperature to Fahrenheit. func CToF(c …...

Java 语言实现线性查找算法

【引言】 线性查找算法是一种简单且直观的查找算法。它从数组的第一个元素开始逐个比较&#xff0c;直到找到目标元素&#xff0c;或者遍历完整个数组。本文将使用Java语言实现线性查找算法&#xff0c;并详细讲解其思想和代码实现。 【算法思想】 线性查找的核心思想是逐个比…...

xcode15 change

jump to define 由原先的 control command left click 改为command left click 可以方便使用TODO // TODO: 是不是这里要改成红色字体 将这个直接作为bookmark...

MySQL集群(mysql-cluster)

环境 系统环境&#xff1a;centos7 管理节点&#xff1a;192.168.127.128 数据节点&#xff1a;192.168.127.145&#xff0c;192.168.127.146 sql节点&#xff1a;192.168.127.145&#xff0c;192.168.127.146 约定 创建mysql用户&#xff0c;将程序部署到/home/mysql 目…...

基于神经网络的3D地质模型

地球科学家需要对地质环境进行最佳估计才能进行模拟或评估。 除了地质背景之外&#xff0c;建立地质模型还需要一整套数学方法&#xff0c;如贝叶斯网络、协同克里金法、支持向量机、神经网络、随机模型&#xff0c;以在钻井日志或地球物理信息确实稀缺或不确定时定义哪些可能是…...

微信小程序逆向工程:5步掌握wxappUnpacker核心技术与安全分析实战

微信小程序逆向工程&#xff1a;5步掌握wxappUnpacker核心技术与安全分析实战 【免费下载链接】wxappUnpacker forked from https://github.com/qwerty472123/wxappUnpacker 项目地址: https://gitcode.com/gh_mirrors/wxappu/wxappUnpacker 在当今移动应用生态中&#…...

COMET:基于深度学习的翻译质量评估技术革命

COMET&#xff1a;基于深度学习的翻译质量评估技术革命 【免费下载链接】COMET A Neural Framework for MT Evaluation 项目地址: https://gitcode.com/gh_mirrors/com/COMET 在机器翻译技术快速发展的今天&#xff0c;翻译质量评估已成为连接技术研发与实际应用的关键…...

在Node.js后端服务中集成Taotoken,调用多模型API完成内容生成

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Node.js后端服务中集成Taotoken&#xff0c;调用多模型API完成内容生成 将大模型能力集成到后端服务是现代应用开发的常见需求。…...

基于STM32H750XBH6开发板调试LwIP裸机程序

目录 1 前言 2 正点原子STM32H750XBH6阿波罗开发板介绍 3 配置和调试 3.1 CubeMX配置 3.2 代码修改 1 前言 LwIP 是物联网 / 嵌入式领域使用最广的开源 精简版TCP/IP 协议栈,STM32、ESP32、国产 MCU 全都用它,对于嵌入式 / 物联网初学者来说,亲手调试 LwIP 裸机程序(无操作…...

欢迎新Buddy:DataBuddy

大数据人自己的原生Agent来了&#xff01;腾讯云大数据智能体工作台DataBuddy正式发布。用户通过自然语言对话&#xff0c;即可完成数据接入、开发、治理、分析全链路任务&#xff0c;不用再在多个页面之间切换操作&#xff0c;一句话说清目标&#xff0c;Agent自己跑完全流程。…...

华硕笔记本性能优化终极指南:G-Helper轻量控制工具完整解析

华硕笔记本性能优化终极指南&#xff1a;G-Helper轻量控制工具完整解析 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenboo…...

CH347玩转双模式:一篇教程搞定JTAG和SWD对STM32的调试与下载

CH347双模式实战指南&#xff1a;JTAG与SWD高效切换玩转STM32开发 第一次接触CH347这颗多功能接口芯片时&#xff0c;我正被手头几个不同调试接口的项目折腾得焦头烂额。有的客户板子只留了SWD接口&#xff0c;有的老项目又必须用JTAG&#xff0c;来回切换调试器不仅麻烦&#…...

装上这个技能,让你的 OpenClaw 和 Hermes 变身私人旅行规划师

一句话说清楚给小龙虾和马装上 Voyago&#xff0c;以后你只需要说"帮我规划杭州两天一夜"&#xff0c;它就会自动帮你查火车票、搜机票、找酒店、查门票、规划路线、搜小红书攻略、算预算&#xff0c;最终输出一份万字级的完整旅行方案——精确到每两个地点之间坐几号…...

5分钟解锁AI智能助手:Qwen-Agent模型配置完全指南

5分钟解锁AI智能助手&#xff1a;Qwen-Agent模型配置完全指南 【免费下载链接】Qwen-Agent Agent framework and applications built upon Qwen>3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc. 项目地址: https://gitcode.com/Git…...

【Feed 高并发架构实战】:雪花 ID + 三级缓存 + 计数旁路设计详解

&#x1f525;你好我是fengxin_rou这是我的个人主页fengxin_rou的主页 ❄️欢迎查看我的专栏我的专栏 《Java后端学习》、《JAVASE基础》、《JUC并发》、《redis》、《JVM虚拟机》、《MYSQL》、《黑马点评》、《rabbitmq》、《JavaWebAI的talis学习系统》、《苍穹外卖》 目录…...