首页 > 其他分享 >Apache POI 操作Excel文件--写入数据至客户端

Apache POI 操作Excel文件--写入数据至客户端

时间:2023-12-31 16:33:37浏览次数:22  
标签:-- Excel POI excel businessData sheet1 getCell setCellValue

    public void exprotBusinessData(HttpServletResponse httpServletResponse) {
        // 1. 查询数据库
        LocalDateTime begin=LocalDateTime.of(LocalDate.now().minusDays(30),LocalTime.MIN);
        LocalDateTime end=LocalDateTime.of(LocalDate.now().minusDays(1),LocalTime.MAX);
        BusinessDataVO businessData = workspaceService.getBusinessData(begin, end);
        // 2. 写入excel
        try {
            // 获取模版--从本地
            InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream("template/excel.xlsx");// 通过反射机制获取文件输入流
            XSSFWorkbook excel = new XSSFWorkbook(resourceAsStream); // 从该输入流管道内获取excel文件对象excel -- XSSFWorkbook
// 填充数据
            XSSFSheet sheet1 = excel.getSheet("Sheet1"); // 根据表格页名获取表格页对象sheet1 -- XSSFSheet
            sheet1.getRow(1) // 根据行索引获取行对象row -- XSSFRow
            .getCell(1) //  根据列索引获取单元格对象cell -- XSSFCell
            .setCellValue("时间:"+begin+"至"+end); // 根据单元格对象设置单元格值

            XSSFRow row4=sheet1.getRow(3);
            row4.getCell(2).setCellValue(businessData.getTurnover());
            row4.getCell(4).setCellValue(businessData.getOrderCompletionRate());
            row4.getCell(6).setCellValue(businessData.getNewUsers());

            XSSFRow row5=sheet1.getRow(4);
            row5.getCell(2).setCellValue(businessData.getValidOrderCount());
            row5.getCell(4).setCellValue(businessData.getUnitPrice());

            // 3. 将文件下载给客户端浏览器
            ServletOutputStream outputStream=httpServletResponse.getOutputStream(); // 获取接通客户端的数据输出流通道
            excel.write(outputStream); // 将excel文件内容写入该通道 --> 传输到客户端
        } catch (Exception e) {
            e.printStackTrace();
        }

 

标签:--,Excel,POI,excel,businessData,sheet1,getCell,setCellValue
From: https://www.cnblogs.com/liangzhe/p/17937603

相关文章

  • PGP协议
    是一个完整的电子邮件安全软件包,包括加密、鉴别、电子签名和压缩等技术。是把现有的加密算法(如RSA公钥加密算法或MD5报文摘要算法)综合在一起。提供电子邮件的安全性、发送方鉴别和报文完整性。工作原理假定A向B发送电子邮件明文X,现在用PGP进行加密。A有三个密钥:自己的私钥、B的公钥......
  • 2023年总结以及对2024年的展望
    这一年  博主是个在校大三的程序员,所在专业是数据科学与大数据技术,不过我自己选择的技术栈则是C++那块的。回想起大二时懵懵懂懂转过来大数据专业,当时什么也不懂,编程的世界对我来说也似乎遥不可及,当时我总是在想,为什么别人能想到这么写?我真的适合这个专业吗?面对种种困惑,我大二......
  • 影响代理IP速度的四大因素
    在使用代理IP时,用户们多多少少都会遇到一些问题,而代理速度不稳定就是一个比较常见的问题。用户在使用时经常会发现自己的代理IP速度忽快忽慢,有些时候甚至还需要很长时间才能作出响应,那么是什么原因造成了这种情况呢?很大程度上决定代理服务器速度的一个重要因素是它与发送请求的Web......
  • 读书笔记——《敏捷软件需求》其二
    《敏捷软件需求》一书中有许多经典的话语和观点,以下是其中几个例子:"用户故事能够帮助我们将需求转化为实际可行的功能,它以简洁、清晰的方式描述了用户的愿景和期望。""故事地图是一种强大的工具,可以帮助我们从全局角度理解和规划用户故事。它既能显示用户故事之间的关系,也能......
  • SpringBoot接入Mybatis-Flex
    相信不少的伙伴在日常开发中应该都用过MyBatis增强框架吧,目前来说国内用的比较多的无非就是MyBatis-Plus,那么今天我再给大家介绍一款新的MyBatis增强框架,它就是MyBatis-Flex。那么这个框架到底怎么样呢,跟MyBatis-Plus有什么不一样的呢,下面我们先来看下它的介绍,这是官网的一段介......
  • 防火墙
    是一种特殊编程的路由器,安装在一个网点和网络的其余部分之间。目前是实施访问控制策略。这个访问控制策略是由使用防火墙的单位自行制定的。防火墙的功能有两个,一个是阻止,一个是允许。阻止是阻止某种类型的流量通过防火墙(从外部网络到内部网络)。防火墙技术有两类:①网络级防火墙用来......
  • Microsoft 365 开发:如何通过PnP Powershell批量删除文件夹或文件等
    51CTOBlog地址:https://blog.51cto.com/u_13969817通常删除文件夹可以在UI界面操作比较方面,但是如果想快速的删除文件夹以及其childfolder,该如何操作呢?解决方案:本文将介绍如何使用PnPPowerShell脚本删除SharePoint文档库中的文件夹:第一步是通过运行cmdlet:ConnectPnPOnline来......
  • Cocos Creator 3.x之旋转基础
    一,场景设计二,整体场景效果三,QuatView.ts代码import{_decorator,Component,EventTouch,Input,input,Node,Quat,v3,Vec3,Vec2}from"cc";const{ccclass,property}=_decorator;@ccclass("QuatView")exportclassQuatViewextendsComponent{......
  • 无涯教程-Java 正则 - Matcher useAnchoringBounds函数
    java.util.regex.Matcher.useAnchoringBounds(booleanb)方法设置此匹配器的区域边界定位。MatcheruseAnchoringBounds-声明publicMatcheruseAnchoringBounds(booleanb)b  - 指示是否使用锚定边界的布尔值。MatcheruseAnchoringBounds-返回值这个匹配器。M......
  • 线性基佐料
    在cnblogs中阅读。【少图预警!】【需要结合其他文章食用!】?声明?这里不对线性代数相关概念和异或线性基做最基本的概述。上网搜大概可以搜到三篇高质的讲解线性基的博客:线性基小记-command_block的博客-洛谷博客(luogu.com.cn)线性基学习笔记-拜傅里叶教总部-洛谷......