Java 导出excel

news2024/11/17 7:40:14

1.导出excel 带合计

如:在这里插入图片描述

public void export(DriverAndGuestMealQueryVO vo) {
        DriverAndGuestMealListDTO riceLiquidationPage = page(vo);
        // 创建一个Excel工作簿
        Workbook workbook = new XSSFWorkbook();
        // 创建一个工作表sheet
        Sheet sheet = workbook.createSheet("司机补贴表");

        // 创建表头行
        Row headerRow = sheet.createRow(0);
        String[] headers = {
                "日期", "餐厅","餐段", "餐别", "消费金额", "客数", "调整金额", "结算金额"
        };
        int defaultColumnWidth = 20 * 256;
        for (int i = 0; i < headers.length; i++) {
            sheet.setColumnWidth(i, defaultColumnWidth);
            Cell cell = headerRow.createCell(i);
            cell.setCellValue(headers[i]);
        }
        try {
            List<DriverAndGuestMealQueryDTO> data = riceLiquidationPage.getPageInfo().getList();
            // 填充数据
            int rowNum = 1;
            if (data.size() > 0) {
                for (DriverAndGuestMealQueryDTO dto : data) {
                    Row dataRow = sheet.createRow(rowNum++);
                    int colNum = 0;
                    dataRow.createCell(colNum++).setCellValue(dto.getDriverDate());
                    dataRow.createCell(colNum++).setCellValue(dto.getRestaurant());
                    dataRow.createCell(colNum++).setCellValue(dto.getMealPeriod());
                    dataRow.createCell(colNum++).setCellValue(dto.getMealType());
                    dataRow.createCell(colNum++).setCellValue(String.valueOf(dto.getAmountSpent()));
                    dataRow.createCell(colNum++).setCellValue(dto.getNumberOfGuests());
                    dataRow.createCell(colNum++).setCellValue(String.valueOf(dto.getAdjustmentAmount()));
                    dataRow.createCell(colNum++).setCellValue(String.valueOf(dto.getSettlementAmount()));
                    // 注意:原始数据中可能没有“日期”字段,这里假设你有一个方法来获取它,或者你可以省略这一列
                    // dataRow.createCell(colNum++).setCellValue(dto.getDate()); // 假设有一个getDate()方法
                }
            }
            Row summaryRow = sheet.createRow(rowNum);
            Cell totalCells[] = new Cell[headers.length];
            totalCells[0] = summaryRow.createCell(0);
            totalCells[0].setCellValue("合计 ");

            totalCells[headers.length - 4] = summaryRow.createCell(headers.length - 4);
            totalCells[headers.length - 4].setCellValue(String.valueOf(riceLiquidationPage.getAmountSpentSum()));
            totalCells[headers.length - 3] = summaryRow.createCell(headers.length - 3);
            totalCells[headers.length - 3].setCellValue(String.valueOf(riceLiquidationPage.getNumberOfGuestsSum()));
            totalCells[headers.length - 2] = summaryRow.createCell(headers.length - 2);
            totalCells[headers.length - 2].setCellValue(String.valueOf(riceLiquidationPage.getAdjustmentAmountSum()));
        totalCells[headers.length-1] = summaryRow.createCell(headers.length-1);
        totalCells[headers.length-1].setCellValue(String.valueOf(riceLiquidationPage.getSettlementAmountSum()));
        // 设置响应内容类型
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            // 设置响应头,告诉浏览器下载的文件名
            response.setHeader("Content-Disposition", "attachment; filename=司机补贴表.xlsx");

        } catch (Exception e) {
            e.getMessage();
        }

        // 将工作簿写入响应输出流
        try {
            workbook.write(response.getOutputStream());
            // 关闭工作簿释放资源
            workbook.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            // 关闭工作簿释放资源
            try {
                workbook.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }

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

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

相关文章

网络通信——DHCP

目录 一.DHCP应用场景 二.通信过程 三.DHCP报文 四.DHCP通信原理 &#xff08;1&#xff09;租借过程 &#xff08;2&#xff09;DHCP 租期更新 &#xff08;3&#xff09;DHCP重绑定 五.一般路由器的DHCP支持两种地址池 &#xff08;1&#xff09;接口地址池 &…

Html jquery下拉select美化插件——selectFilter.js

1. Html jquery下拉select美化插件——selectFilter.js jQuery是一个广泛使用的JavaScript库&#xff0c;它简化了DOM操作、事件处理、动画以及Ajax交互&#xff0c;使得开发者能更高效地构建交互式网页。在本案例中&#xff0c;jquery.selectlist.js插件正是基于jQuery构建的&…

复旦大学附属中山医院院士团队论文遭遇质疑

近日&#xff0c;一篇发表于肝脏领域顶级期刊《Hepatology》(IF:17.1;Q1&#xff09;杂志的肝细胞癌研究论文因图像数据的相似性问题受到质疑。该论文题为‘Protein tyrosine phosphatase receptor S acts as a metastatic suppressor in hepatocellular carcinoma by control …

找不到concrt140.dll怎么修复,这4种方法可轻松搞定

1. concrt140.dll 定义 1.1 系统文件 concrt140.dll 是一个系统文件&#xff0c;属于 Windows 操作系统中重要的动态链接库&#xff08;DLL&#xff09;之一。它通常位于系统的 System32 或 SysWOW64 文件夹中&#xff0c;是 Microsoft Visual C 2015 Redistributable 包的一…

如何在产品上扩大储存?教你一招简单好用的!

你是不是经常遇到需要扩大库存的问题&#xff1f;毕竟总是有很多文件需要存储&#xff1a;视频、音频、文件。。。 但是芯片的空间寸土寸金呀&#xff01; 内部不够只能外扩&#xff0c;然后就是要编写各种驱动&#xff0c;还有Flash替换。。。怎么听着就头疼&#xff01; 教…

【一文带你找到答案!】你了解文档透明加密系统吗?文档透明加密系统有什么功能?

在当今数字化时代&#xff0c;信息安全已成为企业和个人不可忽视的重要议题。 文档透明加密系统作为保护敏感信息的关键技术之一&#xff0c;正逐渐受到广泛关注和应用。 本文将带您深入了解文档透明加密系统&#xff0c;并详细解析其各项功能。 一、文档透明加密系统概述 文…

linux常见指令与权限【第四课】

19.tar指令&#xff08;重要&#xff09;&#xff1a;打包/解包&#xff0c;不打开它&#xff0c;直接看内容 tar [-cxtzjvf] &#xff1a; -c &#xff1a;建立一个压缩文件的参数指令 (create 的意思 ) &#xff1b; -x &#xff1a;解开一个压缩文件的参数指令&#xff…

Java线程池和原子性

文章目录 前言1 线程池1.1 线程池概述1.1.1 线程池存在的意义1.1.2 Executors默认线程池 1.2 线程状态介绍1.2.1 线程状态源码1.2.2 线程状态含义1.2.3 线程状态转换图 2 原子性2.1 volatile关键字2.2 synchronized解决2.3 原子性2.4 AtomicInteger类2.5 悲观锁和乐观锁 前言 …

TikTok五分钟开户快速步骤流程!

1、注册您的账户 首先&#xff0c;访问TikTok广告管理器的注册页面&#xff08;https://ads.tiktok.com/i18n/signup/&#xff09;以创建账户。您可以选择使用电子邮件或手机号码进行注册。输入您的电子邮件和密码后&#xff0c;您需要同意TikTok的广告条款&#xff0c;然后点击…

【路径规划】用于识别封闭多边形竞技场内两点之间的最短路径

摘要 本项目展示了一种在包含障碍物的封闭多边形区域内识别两点之间的最短路径的算法。该算法不依赖于离散化的地图&#xff08;如网格地图&#xff09;&#xff0c;而是直接通过几何计算处理路径和障碍物之间的关系&#xff0c;生成沿着障碍物边缘的最优路径。实验结果表明&a…

软考中级网络工程师选择题

部分参考 软考中级网络工程师全面学习笔记第2版(5万字)配套视频及课件_软考中级网络工程师资料-CSDN博客 1.计算机网络概述 操作系统 OSI七层模型&#xff1a;物联网淑慧试用 TCP/IP&#xff1a;网网&#xff08;网际层&#xff09;传应 高频考点&#xff1a; 中央处理器CP…

数仓思想、数仓建模、维度建模理论、数仓面试题

文章目录 一、数仓建模1、数仓建模的意义2、数仓建模方法论1&#xff09;ER模型&#xff1a;2&#xff09;六范式&#xff1a; 3、维度模型 二、维度建模理论之事实表1、事务型事实表2、周期型快照事实表3、累计型快照事实表 三、维度建模理论之维度表1、设计步骤2、设计要点3、…

C++ 9.25

手动实现栈、和队列 stack #include <iostream> using namespace std; class Stack { private: int* arr; // 存储栈元素的数组 int top; // 栈顶索引 int capacity; // 栈的容量 public: Stack(int size) { arr new int[size]; c…

uni-app+vue3开发微信小程序使用本地图片渲染不出来报错[渲染层网络层错误]Failed to load local image resource

我把图片放在assets里面页面通过相对路径引入。结果一直报错。 最后我把图片放在static文件夹下面。然后修改路径指向static就可以了 或者是我们必须先import 这个图片然后在使用 import banner1 from ../../assets/images/banner/banner1.png; <image :src"banner…

戴尔迅速应对疑似信息泄露事件,强化数据保护措施|硬盘文件数据销毁 文件销毁 数据销毁

在全球数字化转型的浪潮中&#xff0c;数据已成为企业最宝贵的资产之一&#xff0c;而数据安全则是这一进程中的基石。近期&#xff0c;戴尔公司遭遇了一起疑似大规模信息泄露事件&#xff0c;涉及约4900万用户的信息&#xff0c;这一事件迅速引发了全球范围内的广泛关注。面对…

【开源】 mRemoteNG 一键搞定!推荐一款强大的.NET多协议远程连接管理器

今天给大家推荐一款.NET开发的多协议、选项卡式远程连接管理器mRemoteNG。 mRemoteNG 是 mRemote 的一个分支&#xff1a;一个开源的、标签式的、多协议的、用于 Windows 的远程连接管理器。 mRemoteNG是一个开源的Windows远程连接管理器&#xff0c;它支持多种协议&#xff0c…

交通锥检测系统源码分享

交通锥检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

Python 使用selenium 4.25 进行爬虫(1)

都说python做爬虫比较好&#xff0c;于是我跟着大家的脚步学习python进行爬虫&#xff0c;但是调试了半天&#xff0c;出现各种各样的问题&#xff0c;最终都得到实现了&#xff0c;下面我们来看具体的代码&#xff1a; from selenium import webdriver from selenium.webdriv…

模拟银行操作

设计实现一个银行新用户现金业务办理程序&#xff0c;使其模拟新用户到银行办理现金存取业务时的场景。要求如下&#xff1a; (1)有对于用户到来的欢迎动作、用户离开的提醒动作 (2)有用户的开户、存款和取款动作&#xff0c;在完成开户存款和取款操作后&#xff0c;要提示用…

Godot C# 自定义摄像机

前言 说起来&#xff0c;Unity的社区环境跟插件支持确实要比Godot好很多&#xff0c;比如我们Unity最喜欢的Cinemachine插件&#xff0c;只需要动动手指就能轻松实现很多高级的摄像机动效。 所以一转到Godot就有一种力不从心的感觉&#xff0c;于是既然动不了手指我们就动手。自…