Java实体间转换并导出excel

news/2024/7/21 7:06:30 标签: java, excel

两个实体间转换导出excel
首先建两个实体
public class Order {
private Long id;
private String orderNo;
private String customerName;
private Date createTime;
// getter 和 setter 方法
}

public class OrderVO {
private String orderNo;
private String customerName;
private String createTime;

// getter 和 setter 方法

}
其次,在 OrderVO 类中定义一个静态方法 fromOrder(),用于将 Order 转换为 OrderVO 对象。
public class OrderVO {
private String orderNo;
private String customerName;
private String createTime;

// getter 和 setter 方法

public static OrderVO fromOrder(Order order) {
    OrderVO orderVO = new OrderVO();
    orderVO.setOrderNo(order.getOrderNo());
    orderVO.setCustomerName(order.getCustomerName());
    orderVO.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(order.getCreateTime()));
    return orderVO;
}

}
最后方法内应用
在 Controller 类中编写导出 Excel 数据的方法。

@GetMapping("/export")
public void exportExcel(HttpServletResponse response) {
// 查出数据,原始的Java实体
    List<Order> orderList = orderService.getOrderList();

    // 将 Order 转换为 OrderVO
    List<OrderVO> orderVOList = orderList.stream().map(OrderVO::fromOrder).collect(Collectors.toList());

    // 将 OrderVO 列表写入 Excel 文件
    String[] titles = { "订单编号", "客户姓名", "创建时间" };
    try (XSSFWorkbook workbook = new XSSFWorkbook()) {
        XSSFSheet sheet = workbook.createSheet("订单列表");

        // 设置标题行
        XSSFRow titleRow = sheet.createRow(0);
        for (int i = 0; i < titles.length; i++) {
            titleRow.createCell(i).setCellValue(titles[i]);
        }

        // 填充数据行
        for (int i = 0; i < orderVOList.size(); i++) {
            XSSFRow row = sheet.createRow(i + 1);
            OrderVO orderVO = orderVOList.get(i);
            row.createCell(0).setCellValue(orderVO.getOrderNo());
            row.createCell(1).setCellValue(orderVO.getCustomerName());
            row.createCell(2).setCellValue(orderVO.getCreateTime());
        }

        // 写入 Excel 文件到输出流
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Content-Disposition", "");
        ............

http://www.niftyadmin.cn/n/448447.html

相关文章

Cisco模拟器配置OSPF

一、前言 1.1 本文为Cisco模拟器配置OSPF操作笔记 (供新手参考&#xff09; 使用Cisco模拟器&#xff0c;配置OSPF协议&#xff0c;并使各台电脑ping通&#xff0c;如下参考图&#xff01; 1.2 思科路由器设置ip设置 在将设备摆放完毕后&#xff0c;需要配置每台设备的IP&…

三种Resis 集群方案

为什么要redis集群&#xff1f; Redis 集群是 Redis 分布式架构的一种实现方式&#xff0c;它可以将多个 Redis 节点组成一个集群&#xff0c;提供高可用、高吞吐量和负载均衡等特性 一. 主从复制模式 就是一主多从&#xff0c;redis会把机器节点分为主节点和从节点&#xf…

Vue中如何进行表单手机号验证与手机号归属地查询

Vue中如何进行表单手机号验证与手机号归属地查询 在Vue中&#xff0c;表单验证和数据处理是非常重要的功能&#xff0c;它可以帮助我们保证用户输入的数据的正确性和完整性。手机号验证和手机号归属地查询是常见的表单验证需求&#xff0c;本文将介绍如何在Vue中实现这两个功能…

<Linux开发>驱动开发 -Linux MISC 驱动

&#xff1c;Linux开发&#xff1e;驱动开发 -Linux MISC 驱动 交叉编译环境搭建&#xff1a; &#xff1c;Linux开发&#xff1e; linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下&#xff1a; &#xff1c;Linux开发&#xff1e; -之-系统移植 uboot移植过程详细记…

《项目实战》构建SpringCloud alibaba项目(二、构建微服务鉴权子工程store-authority-service)

系列文章目录 构建SpringCloud alibaba项目&#xff08;一、构建父工程、公共库、网关&#xff09; 构建SpringCloud alibaba项目&#xff08;二、构建微服务鉴权子工程store-authority-service&#xff09; 文章目录 系列文章目录前言1、在公共库增加 UserInfo类2、微服务鉴权…

smigroup LAFERT 伺服电机 B7108P-03177

​ smigroup LAFERT 伺服电机 B7108P-03177 smigroup LAFERT 伺服电机 B7108P-03177 从系统的可扩展性和兼容性的方面来说&#xff1a; 市场上控制类产品繁多&#xff0c;无论DCS还是PLC&#xff0c;均有很多厂商在生产和销售。对于PLC系统来说&#xff0c;一般没有或很少有扩…

训练自定义模型MMDetection的非侵入式配置

刚开始用MMDetection框架&#xff0c;希望使用自己的模型和训练数据集&#xff0c;因此粗略看了官方教程和网上的一些资料。然而&#xff0c;这些资料大多数都需要修改MMDetection安装目录下的文件&#xff0c;这显然不是一种很好的做法。下面以目标检测为例&#xff0c;我通过…

Linux系统之部署Etherpad文档编辑器

Linux系统之部署Etherpad文档编辑器 一、Etherpad介绍1.Etherpad简介2.Etherpad特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查系统是否安装Node.js 四、部署Node.js 环境4.1 下载Node.js安装包…