poi excel数据统计导出

##poi excel导出案例
1.ajxa导出请求没有任何反应,打断点看了workBook中也有数据,网上查阅说ajax请求导出无法接收流,换成location.href,果然可以了
2.控制器代码

response.setCharacterEncoding("UTF-8");response.setContentType("application/vnd.ms-excel");String encodedFilename = "attachment; filename*=UTF-8''" + URLEncoder.encode(filename, "UTF-8") + ".xls";response.setHeader("Content-Disposition", encodedFilename);HSSFWorkbook workbook = new HSSFWorkbook();if("00A".equals(docType)){workbook = docExportService.getDocInDetailsToExport(filename, workbook, this.getSysOrg().getOrgId(), startTime, endTime);}else{workbook = docExportService.getDocOutDetailsToExport(filename, workbook, this.getSysOrg().getOrgId(), startTime, endTime);}OutputStream outputStream = response.getOutputStream();workbook.write(outputStream);outputStream.flush();outputStream.close();

2.excel合并处理数据

try {HSSFSheet sheet = workbook.createSheet(filename);// 列头的样式HSSFFont columnHeadFont = workbook.createFont();columnHeadFont.setFontName("宋体");columnHeadFont.setFontHeightInPoints((short) 10);columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);HSSFCellStyle columnHeadStyle = workbook.createCellStyle();columnHeadStyle.setFont(columnHeadFont);columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);// 左右居中columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中columnHeadStyle.setLocked(true);columnHeadStyle.setWrapText(true);columnHeadStyle.setLeftBorderColor(HSSFColor.BLACK.index);// 左边框的颜色columnHeadStyle.setBorderLeft((short) 1);// 边框的大小columnHeadStyle.setRightBorderColor(HSSFColor.BLACK.index);// 右边框的颜色columnHeadStyle.setBorderRight((short) 1);// 边框的大小columnHeadStyle.setTopBorderColor(HSSFColor.BLACK.index);columnHeadStyle.setBorderTop((short) 1);columnHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体columnHeadStyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色// 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式)columnHeadStyle.setFillForegroundColor(HSSFColor.WHITE.index);//标题样式HSSFFont headfont = workbook.createFont();headfont.setFontName("黑体");headfont.setFontHeightInPoints((short) 22);// 字体大小headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 加粗HSSFCellStyle headstyle = workbook.createCellStyle();headstyle.setFont(headfont);headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中headstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中headstyle.setLocked(true);headstyle.setWrapText(true);// 自动换行//表头样式HSSFCellStyle headstyle0 = workbook.createCellStyle();headstyle0.setFont(headfont);headstyle0.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中headstyle0.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中headstyle0.setLeftBorderColor(HSSFColor.BLACK.index);// 左边框的颜色headstyle0.setBorderLeft((short) 1);// 边框的大小headstyle0.setRightBorderColor(HSSFColor.BLACK.index);// 右边框的颜色headstyle0.setBorderRight((short) 1);// 边框的大小headstyle0.setTopBorderColor(HSSFColor.BLACK.index);headstyle0.setBorderTop((short) 1);headstyle0.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体headstyle0.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色// 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式)headstyle0.setFillForegroundColor(HSSFColor.GREY_80_PERCENT.index);String [] fields={"序号","登记时间","备注"};//创建表头HSSFRow header = sheet.createRow(0);header.setHeight((short) 1000);Region region = new Region(0, (short) 0, 0, (short) (fields.length-1));sheet.addMergedRegion(region);HSSFCell hc = header.createCell(0);hc.setCellValue(new HSSFRichTextString("数据统计"));hc.setCellStyle(headstyle0);//创建表头HSSFRow row = sheet.createRow(1);row.setHeight((short) 500);for (int i=0;i<fields.length;i++){HSSFCell cellA = row.createCell(i);cellA.setCellValue(fields[i]);cellA.setCellStyle(columnHeadStyle);sheet.setColumnWidth(i,4500);}Page pager=xxxService.getInxxxList(orgId,startTime,endTime, 1, Integer.MAX_VALUE);//添加数据行List<xxx > inList = (List<xxx >) pager.getData();int row0=2;for (int rowIndex = 1; rowIndex <= inList.size(); rowIndex++) {xxx detail = inList.get(rowIndex - 1);HSSFRow dataRow = sheet.createRow(row0);dataRow.setHeight((short)500);for(int m=0;m<fields.length;m++){HSSFCell cell = dataRow.createCell(m);String tempString = "";if (fields[m].equals("序号")) {tempString = String.valueOf(rowIndex);}if (fields[m].equals("登记时间")) {tempString = detail.getCreateDate();}if (fields[m].equals("备注")) {tempString ="";//todo 现在无值}cell.setCellValue(new HSSFRichTextString(tempString));cell.setCellStyle(columnHeadStyle);}row0++;}} catch (Exception e) {e.printStackTrace();}return workbook;

4.展示结果:
在这里插入图片描述

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

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

相关文章

昆仑通态触摸屏-如何完成几个窗口的切换

一、启动窗口 想要哪一个窗口是启动时第一个显示的&#xff0c;就把谁设置为启动窗口就可以。 二、公共窗口 给一个窗口命名为公共窗口 然后选择一个窗口&#xff0c;将他的公共窗口设置为我们刚才命名的那个窗口 三、页面切换 页面切换&#xff0c;是通过在公共窗口内设置按…

golang 实现比特币内核:处理椭圆曲线中的天文数字

在比特币密码学中&#xff0c;我们需要处理天文数字&#xff0c;这个数字是如此巨大&#xff0c;以至于它很容易超出我们宇宙中原子的总数&#xff0c;也许 64 位的值不足以表示这个数字&#xff0c;而像加、乘、幂这样的操作如果使用 64 位整数会导致溢出&#xff0c;因此我们…

dns服务器配置

主服务器 1.挂载点 mount /dev/sr0 /mnt 2.防火墙关闭 systemctl stop firewalld setenforce 0 3.下载bind软件 dnf install bind -y 4.进行正向解析配置 vim /etc/named.conf options { listen-on port 53 { 192.168.92.128; }; directo…

GraphRAG本地部署使用及兼容千帆通义

文章目录 前言一、GraphRAG本地安装1.创建环境并安装2.准备demo数据3.初始化demo目录 二、GraphRAG兼容千帆通义等大模型1.安装 graphrag-more2.准备Demo数据3.初始化demo目录4.移动和修改 settings.yaml 文件 三、知识库构建与使用1.知识库构建2.执行查询 前言 GraphRAG是一种…

揭秘2024年最火的5个科技趋势,你准备好迎接了吗?

在这个信息化飞速发展的时代&#xff0c;科技正以前所未有的速度改变着我们的生活。2024年&#xff0c;科技行业将迎来哪些新的突破与趋势&#xff1f;从人工智能到量子计算&#xff0c;从数字货币到智能家居&#xff0c;未来已来&#xff0c;而我们正站在一个巨变的风口浪尖上…

MySQL排序查询

排序查询 在实际应用中,经常都需要按照某个字段都某种排序都结果,实现语法&#xff1a; select 查询列表 from 表 where 条件 order by 排序字段列表 asc | desc; 案例&#xff1a;查询所有员工信息,要求工资从大到小排列 select * from employees order by salary desc; /…

Python实例:爱心代码

前言 在编程的奇妙世界里,代码不仅仅是冰冷的指令集合,它还可以成为表达情感、传递温暖的独特方式。今天,我们将一同探索用 Python 语言绘制爱心的神奇之旅。 爱心,这个象征着爱与温暖的符号,一直以来都在人类的情感世界中占据着特殊的地位。而通过 Python 的强大功能,…

JS JavaScript实现h5页面间跳转

一、不在JS中跳转 如果你不想在 JavaScript 中写页面跳转&#xff0c;而是希望使用 HTML 或者其它前端方式来实现页面跳转&#xff0c;下面是一些常见的方法&#xff1a; 1. 使用 <a> 标签进行跳转 HTML 中最常见的跳转方式就是使用 <a> 标签。它可以让用户点击链…

scala学习记录,Set,Map

set&#xff1a;集合&#xff0c;表示没有重复元素的集合&#xff0c;特点&#xff1a;唯一 语法格式&#xff1a;val 变量名 Set [类型]&#xff08;元素1&#xff0c;元素2...&#xff09; 可变不可变 可变&#xff08;mutable&#xff09;可对元素进行添加&#xff0c;删…

基于SpringBoot的免税商品优选购物商城的设计与实现

一、项目背景 从古至今&#xff0c;通过书本获取知识信息的方式完全被互联网络信息化&#xff0c;但是免税商品优选购物商城&#xff0c;对于购物商城工作来说&#xff0c;仍然是一项非常重要的工作。尤其是免税商品优选购物商城&#xff0c;传统人工记录模式已不符合当前社会…

【深度学习】DreamClear:提升图片分辨率的模型

基于PixArt-XL-2模型,效果很好。 DreamClear:高容量真实世界图像修复与隐私安全数据集构建 在图像修复领域,处理真实世界中的低质量(Low-Quality, LQ)图像并恢复其高质量(High-Quality, HQ)版本一直是一个具有挑战性的任务。今天,我们将介绍一个最新的开源项目——Dr…

从零开始的c++之旅——多态

1. 多态的概念 通俗来说就是多种形态。 多态分为编译时多态&#xff08;静态多态&#xff09;和运行时多态&#xff08;动态多态&#xff09;。 编译时多态主要就是我们之前提过的函数重载和函数模板&#xff0c;同名提高传不同的参数就可以调 用不同的函数&#xff0c…

js实现blob类型转化为excel文件

需求 后端通过接口将excel文件通过blob类型数据进行返回&#xff0c;前端接收数据并将其转化为excel文件进行下载 实现 接口方法 responseType&#xff1a;值为blob&#xff0c;标记返回数据类型为blob Content-Type&#xff1a;请求头设置&#xff0c;值为application/vnd…

融云「北极星」专业版:指标异常及时告警,趋势变化预先知悉

说起程序员的痛苦时刻&#xff0c;深夜接到告警电话、短信绝对榜上有名&#xff0c;甚至可能留下“铃声 PTSD”。 这也从另一个侧面提醒我们&#xff0c;所有在前台给用户丝滑体验的互联网产品&#xff0c;背后都有庞杂的系统和大量的工程师在支撑。而这其中&#xff0c;监控平…

安全篇(1)判断安全固件

判断安全固件的方法 一、通过串口开机打印 改方法适用Android与Tina 1.开机打印为SBOOT为安全 [289]HELLO! SBOOT is starting! 2.开机打印boot0为非安全 [88]BOOT0 commit : 1cbb5ea8b3 二、通过读数据 1.getprop | grep verifiedbootstate 这条命令的输出表示设备的…

火山引擎VeDI数据服务平台:在电商场景中,如何解决API编排问题?

01 平台介绍 数据服务平台可以在保证服务高可靠性和高安全性的同时&#xff0c;为各业务线搭建数据服务统一出口&#xff0c;促进数据共享&#xff0c;为数据和应用之间建立了一座“沟通桥梁”。 同时&#xff0c;解决数据理解困难、异构、重复建设、审计运维困难等问题&#x…

在Ubuntu 上实现 JAR 包的自启动

在 Ubuntu 上实现 JAR 包的自启动&#xff0c;可以通过以下几种方法&#xff1a; 方法一&#xff1a;使用 systemd 创建一个服务文件&#xff1a; 在 /etc/systemd/system/ 目录下创建一个新的服务文件&#xff0c;例如 myapp.service&#xff1a; sudo nano /etc/systemd/sys…

Object 内部类 异常

Objbect类 java提供了Object,它是所有类的父类,每个类都直接或间接的继承了Object类,因此Object类通常被称为超类 当定义一个类时,如果没有使用extends关键字直接去指定父类继承,只要没有被继承的类,都是会默认的去继承Object类,超类中定义了一些方法 方法名称方法说明boole…

SQLite -- 一个遵守君子协定的数据库

用惯了Oracle、PostgreSQL等数据库&#xff0c;今天接触到SQLite&#xff0c;简单尝试了下使用&#xff0c;顿感震惊&#xff01;&#xff01;&#xff01; 与传统的关系型数据库&#xff08;如 MySQL、PostgreSQL 等&#xff09;相比&#xff0c;它的约束是真的宽松。具体来说…

Linux 高级IO

学习任务&#xff1a; 高级 I/O&#xff1a;select、poll、epoll、mmap、munmap 要求&#xff1a; 学习高级 I/O 的用法&#xff0c;并实操 1、高级 I/O&#xff1a; 前置知识&#xff1a; 阻塞、I/O 多路复用 PS: 非阻塞 I/O ------ 非阻塞 I/O 阻塞其实就是进入了休眠状态&am…