POI导出Excel,浏览器不下载的问题解决

使用Java导出Excel表格并由浏览器直接下载——基于POI框架 目录 背景描述 技术准备 导出Excel——尝鲜版 导出Excel——封装版(通过反射) 导出Excel——深度封装(设置下拉选项) 扩展——多个列分别是不同的下拉选项怎么封装 2019-10-28 更新,必看!!! 2019-12-18更新,修复小概率的文件名乱码问题 背景描述 最近博主在做的Web项目中,有一个导出数据到Excel表格的需求,之前用纯JS实现过,这次打算... 阅读详情

在做POI导出Excel的时候,遇到了浏览器不弹出下载框的问题


问题发现

debug跟进发现输出流已经成功写入,而且程序没有报错,可就是没有下载提示

在前台控制器的XHR-response中查看返回数据,发现是乱码,经过一番查找发现了问题所在

我是使用Ajax访问的后台方法,但是Ajax的数据传输都是字符串形式,而POI返回的Excel数据是二进制流的形式,所以前台会出现乱码问题,导致浏览器认为无法下载


问题解决

既然无法使用Ajax请求,还有window.location.href,或者form表单提交等方式。

由于window.location.href属于get请求,所以使用了后者,代码如下

//在html页面添加一个form表单 
<form id="export"></form>
//导出Excel工具类
function exportExcelUtils(item, url, data) {
    let htmlStr = "";
    let keys = Object.keys(data);
    $.each(keys, function (idx, key) {
        htmlStr += "<input type='hidden' name='" + key + "' value='" + data[key] + "'>";
    });
    item.html("").append(htmlStr);
    item.attr("method", "post");
    item.attr("action", url);
    item.submit();
}
//调用工具类,导出excel
exportExcelUtils($("#export"), "/exportExcel", {
            level: "1",
            name: "zzz",
            age: "25"
        });

注:

工具类代码完全不需要修改,只需要根据自己的需求改第三段代码中的url和数据即可

原理就是将数据保存到表单的隐藏域,然后模拟表单提交调用后台方法

java通过poi导出excel文件到浏览器直接下载 首先pom配置文件 &lt;!-- POI 包 --&gt;        &lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; &lt;artifactId&gt;poi&lt;/artifactId&gt; &lt;version&gt;3.9&lt;/version&gt; &l 阅读详情

相关推荐

SSM 框架整合POI插件技术导出EXCEL文件

前言本次实践的项目过程当中,对于基于SSM框架实现的项目过程,其中涉及到了前端导出EXCEL的过程进行整理和汇总,同时对于在网上查找到的资料等进一步进行解释和理解,对于网络中的资料,总是会有些不适合自己项目的地方,这个也是大家在学习过程当中会遭遇到,因为别人描述的问题,是他遇到的,而这次个人遇见,总结了下,可能会是大家都能遇见的实现较为复杂的SQL拼接出来的实现的表格导出下载成为EXCEL文件。由...

mukvintt的博客 6792

关于poi导出excel浏览器不下载的问题

问题:         最近使用poi导出excel表格,但是发现请求成功,但是没有下载框,在浏览器中按F12查看,在调用的成功的response中查看到一堆乱码数据,考虑是不是返回的数据类型有问题,百度了一波,才发现不能使用ajax进行请求 解决:          如果页面使用了frame框架, 点击mvc方法调用地址, 但是没有弹出下载框, 而其他的配置代码没有问题的话, 前后台使用...

街角有人祝福,巷口有人哭~ 4287

导出excel模板,由Jxls技术换为POI,以及解决POI与Jxls的jar包冲突问题

项目里有一个功能,是将数据库查询出的数据全部导出为excel报表,由于数据复杂,使用的是jxls模板,就是这样:jxls代码是这样的://      获得输出的响应 HttpServletResponse response = this.getResponse(); HSSFWorkbook workbook = JxlsManager.getWorkBookByTemplate( "te...

Cu_Chulainn的博客 6714

poi导出excel至页面,firefox调用接口但无文件下载情况

如题 言简意赅的描述下问题,我是在Edge、Chorme中分别都测试了下载,均已成功,但是在firefox测试时无法弹出下载文件框,首先,排错得打着断点先确定你后端没问题哈。 这是我vue页面进行的配置,原代码为这样: let blob = new Blob([res], {type: "application/vnd.ms-excel"}); // res就是接口返回的文件流了 let objectUrl = URL.createObjectURL(blob);

t270153399的博客 590

优化poi 导入导出excel,不造成电脑卡死问题

其实生活中不乏很多需要从数据库向excel导入数据的情况,但是如果数据库的东西很多且字段很长,会造成卡死机的状态。 那么如何解决这个一问题呢,其实网络上有一门技术叫做poi,官方介绍是: Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 其实可以把它理解为Java和Microsoft之间互相沟通的一...

无发可脱 4201

SpringBoot 导出excel,浏览器下载

1、添加Dependency &lt;dependency&gt;     &lt;groupId&gt;cn.afterturn&lt;/groupId&gt;     &lt;artifactId&gt;easypoi-base&lt;/artifactId&gt;     &lt;version&gt;3.1.0&lt;/version&gt; &lt;/dependency&am

wanglu0102的博客 4955

POI导出问题(网络下载)

POI导出问题(网络下载) 在做javaPOI导出EXCEL的时候,由于workbook中的数据量比较大,导致写入response.getOutputStream时,请求超时。这时候,程序会自动关闭数据流,从而引起下载失败。 解决办法: //workbook.write(response.getOutputStream()); //弃用 //改用为一下的传输方式(暂无问题) ByteArrayOutputStream os = new ByteArrayOutputStream(); wor

chang2p的博客 833

POI数据应用解决方案

POI数据应用解决方案

Javaweb项目导出Excel文件无法下载问题

最近写一个Javaweb项目中有一个导出Excel的功能,后台功能实现之后,刚开始前台使用ajax请求,项目也不报错,但是浏览器也没有Excel文件下载,查找代码好久都没有解决。于是在网上查找一番,有很多这种问题。 问题:前端发送ajax【get/post】请求,后端生成excel文件,最后用response输出文件流,没有报错也没有文件下载提示。 结果问题出在ajax请求的问题上,解决方法和...

Gordon家的哈士奇 4392

青龙人形机器人硬件平台设计全解析:从构型到控制系统的实战指南

本文深度解析了青龙人形机器人硬件平台的设计全流程,从需求分析、构型设计到核心系统实现。文章详细阐述了其43个自由度的仿生构型、高动态性下肢设计、灵巧作业系统以及分布式控制架构,并探讨了旋转关节与直线关节等关键技术选型,为开发者提供了从理论到实践的完整硬件设计指南。

weixin_29248313的博客 381

看完这篇爽文我终于学会了示波器(一)

示波器基础篇的介绍,希望对你有用,下次分享一下如何测试。

qq_45508321的博客 973

解决java依赖poi导出Excel表时,没有出现下载提示的问题

浏览器响应: 而且进入断点调试,所有的数据都执行了就是没有下载提示。而且下载失败 如果设置手动设置下载路径的话,下载成功,也没有下载提示。 问题: 自己使用的是ajax请求路径。 而要想出现下载提示框,应该是重新打开一个新的窗口,所以应使用location.href = url请求路径 这样问题就解决了。 ...

jinchunzhao的博客 3429

Windows 下 OpenClaw(小龙虾) 安装全记录:从零到一的保姆级图文教程(持续更新中)

本文主要介绍了Windows 下 OpenClaw 安装全记录:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 实战教程 2.1 步骤一 安装Node.js 2.2 步骤二:安装并配置OpenClaw 2.3 步骤三:配置模型 2.4 步骤四:对话 3. 后续使用步骤

weixin_43178406的博客 16万+

导出excel 0kb的问题

运行导出代码,浏览器提示下载框,但是大小为0kb,跟踪代码执行情况,在这一行就结束了wb = new XSSFWorkbook( is );没有异常抛出。(可能是tomcat层面把异常处理了)总之,找了半天问题,终于发现了,原来是jar包版本不一致造成的。看poi-ooxml-3.8的pom:<dependency> <groupId>or...

weixin_33922672的博客 3647

【WebRTC】【Unity】Unity Web RTC1-Unity中简单实现远程画面

平台:基本常用平台包括安卓,苹果(max和IOS),Windows64,Linux都行。10. 注意,如果从移动设备浏览器连接服务,信令服务器的SSL证书一定要先设好。想要在Unity中实现实时远程桌面,找到了Render Streaming这个手段,本篇介绍相应的使用方法和实例。8. 打开电脑浏览器,地址栏输入http://127.0.0.1,点击Receiver Sample。新建Unity项目,模板选Third Person,Project Name随意。启动App,控制台出现如下信息表示成功。

每日出拳老爷子的博客 2518

使用xlwings在Python中对Excel表格进行操作是非常方便的,可以实现自动化处理、批量数据处理等功能

使用xlwings在Python中对Excel表格进行操作是非常方便的,可以实现自动化处理、批量数据处理等功能。本篇文章主要介绍如何使用xlwings对Excel表格进行多行多列数据设置和操作,并给出相应的源代码。接着,我们可以对这个范围内的所有单元格进行操作,如设置字体颜色、填充颜色、对齐方式等。以上就是使用xlwings对Excel表格进行多行多列数据操作和设置字体颜色、填充色和对齐方式的全部内容。最后,我们可以将数据写入到单元格中,也可以从单元格中读取数据。在Excel中,可以通过。

BUG?不存在的! 712

下载excel表格后缀名为.do形式

最近用POI导出数据到excel,文件可以在浏览器下载,只是下载excel表格后缀名为.do形式。这里的do是我web.xml配置的filter过滤去的拦截方式,事实证明,这里配置什么拦截方式,后缀名就是什么。最后才发现是,我的响应头信息写错了。因为下载文件名为中文,各个浏览器的编码方式可能不同,文件名可能会乱码,所以网上搜了个工具类,于是写代码的时候没有正确导入,所以出现后缀名不正确的现象,以下...

java_xxxx的博客 7298

xtop:multi_driven_net与incomplete_timing_cell fail reason 分析

man multi_driven_net”可以得知,这个问题是multi driven结构引起的,使用命令“get_failed_pins -reason multi_driven_net”,获取violation pin。“man incomplete_timing_cell”可以得知,这个fail reason的原因是缺少timing library cell,检查并补全后这个错误就显示了。这里选择的解决方法是修改lib文件,把inout改成input,重新lib2idb。通过这种方法解决了问题。

m0_61544122的博客 566

使用Apache POI WorkBook 进行下载文件的一个问题

我们在浏览器中需要导出或者下载文件的时候

yxka8的专栏 1118

Kaggle赛题总结:Enefit - Predict Energy Behavior of Prosumers

竞赛旨在解决能源不平衡的问题,即预计使用的能源与实际使用或产生的能源不符。自发自用者是既消耗又产生能源的个体,他们在造成能源不平衡方面起到了重要作用。尽管他们只占所有能源消费者的一小部分,但他们不可预测的能源使用行为给能源公司带来了物流和财务问题。如果不加以解决,可能会导致运营成本增加、电网不稳定以及能源资源的低效利用。如果这个问题得到有效解决,将显著降低不平衡成本,提高电网的可靠性,并使自发自用者更高效和可持续地融入能源系统中。

猫敷雪 741

SAP_MM模块库存概览俄罗斯报表简介

本文介绍了SAP MM模块中"库存概览俄罗斯报表"的功能与应用。该报表主要用于查看物料在不同库存地点和类型的库存情况,并满足俄罗斯当地法规要求。文章解释了"俄罗斯报表"可能指代本地化合规库存报表或客户自定义报表,详细说明了事务代码J3RFLVMOBVEDH的操作步骤,包括公司代码、物料编码、日期范围等查询条件,并解释了报表中各字段含义如期初期末库存数量与价值。最后强调在物料分类账处理完成后使用该报表可获得实际库存价值,为SAP用户提供了实用的库存管理参考。

我小时候很黑的博客 1087

java导出excel文件

Ajax请求,导出excel相关问题 问题形成: Ajax结合配置的excel模板,导出excel时,无任何效果? 过程描述: $.ajax({ type:&quot;post&quot;, url:basePath + '/manage/exports', data:JSON.stringify(params), contentType: &quot;application/json;charset=utf-...

燕儿衔泥 394

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

请求的站点不可用或找不到

用poi做的导出excle点击下载,做好后网页上点击下载报错,“请求的站点不可用”,网上查了查都说ie的问题什么删除历史文件,改环境变量等等,但我折腾了半天还是没有用,后来偶然看我的代码发现我在代码中的下载文件名中使用了中文“年 月 日”而且没有转编码格式,于是将文件编码改了下,文件下载没有任何问题了。 :oops: :wink: [code="java"] getResponse().se...

fightbackbaby的专栏 773

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

POI导出excel中文乱码问题

最近在工作中遇到这样一个场景,需要将表格内容导出成 excel 在浏览器中下载这里因为目前表格是分页的,导出的时候需要根据查询字段作全量查询,然后转换成 excel 表格导出,这里我使用了 apache 的 poi 组件去做这件事。

我的小家 2400

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

谷歌浏览器导出excel失败问题解决

问题描述:   java poi 操作excel ,浏览器提交表单下载导出excel, 用火狐可以正常导出,用chrome一直无响应。 解决经过: 度娘了一堆答案,得到 靠谱的方案是需要设置response的Content-Length来解决,但是无法通过 excel的Workbook获取 length,于是又参照了 https://qieyi28.iteye.com/blog/227485...

wcnmbbbb的博客 1万+
上一篇: Mysql查询每个分组中最新的一条数据,相当于Oracle的OVER(PARTITION BY)函数
下一篇: 使用Java解压zip格式压缩包
Javauthor
博客等级 码龄8年 11粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值