踩坑录-利用Apche-POI.XSSFWorkbook.write,处理excel文件,通过response.outputstram下载文件,预览乱码。
问题概要
利用Apche-POI.XSSFWorkbook.write,处理excel文件,通过response.outputstram导出文件,预览乱码。
解决办法
1.检查设置response,代码如下:
    response.setContentType("application/msdownload");
    response.setCharacterEncoding("utf-8");
    response.setHeader("Content-disposition", "attachment; filename="
        + URLEncoder.encode(filename, "UTF-8"));
--- 如果步骤一,导出excel依旧乱码;按步骤二继续;
2.利用XSSFWorkbook.write,将excel写到本地,通过字节流导出文件,代码如下:
        XSSFWorkbook xssfWorkbook = new ;
        xssfWorkbook= new XSSFWorkbook(InputSteam);
        // 利用request,获取服务器绝对路径
        File dest = new File(request.getSession().getServletContext().getRealPath("/") + "cache\\" );
        // 判断文件目录是否存在
        if(!dest.exists()){
            dest.mkdir();
        }
        Date date = new Date();
        // 获取datetime,避免文件名重复
        String dateTime = "" + date.getTime();
        File file = new File(dateTime  + "test.xlsx");
        OutputStream out = new FileOutputStream(file);
        xssfWorkbook.write(out);
        InputStream is = new FileInputStream(file);
        int len = 0;
        byte buffer[] = new byte[1024];
        while ((len = is.read(buffer)) != -1) {
            outputStream.write(buffer, 0, len);
        }
        // 删除缓存文件
        file.delete();
        // 关闭流,try-catch-finally
        out.close();
        is.close();
        outputStream.flush();
        outputStream.close();
踩坑录-利用Apche-POI.XSSFWorkbook.write,处理excel文件,通过response.outputstram下载文件,预览乱码。的更多相关文章
- 如何利用京东云的对象存储(OSS)上传下载文件
		作者:刘冀 在公有云厂商里都有对象存储,京东云也不例外,而且也兼容S3的标准因此可以利用相关的工具去上传下载文件,本文主要记录一下利用CloudBerry Explorer for Amazon S3 ... 
- 踩坑录-mysql不允许远程连接(错误码:1130) Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server“
		每次搭建mysql环境都会遇见同样的问题,在此分享一下踩坑笔录. 一.问题描述 安装成功后,本地直接链接远程mysql,默认为不允许远程访问,则客户端提示1130 - Host'xxx.xxx.xxx ... 
- 利用 Blob 处理 node 层返回的二进制文件流字符串并下载文件
		博客地址:https://ainyi.com/65 解释 | 背景 看到标题有点懵逼,哈哈,实际上是后端将文件处理成二进制流,返回到前端,前端处理这个二进制字符串,输出文件或下载 最近公司有个需求是用 ... 
- JAVA踩坑录
		以前踩了很多坑,大多忘了.现在踩了坑,想起了一定记下来. 1. 字符串分割,这种工具类,首次使用一定要先看一眼,不然跳坑 commons-lang StringUtils.split分割时会去掉空串: ... 
- 【踩坑】利用fastjson反序列化需要默认构造函数
		利用 fastjson等 反序列化时需要注意,他可能会用到 默认的构造函数,如果没有默认构造函数,某些场景下可能会出现 反序列化熟悉为空的情况,如下图所示: 
- Golang踩坑录 两种方式来读取文件一行所导致的问题
		前两天零零碎碎看完了golang的基础,想着找个小项目练练手,可是出现了一个十分棘手的问题 我要做的东西是网站路径爆破 所以我会从文本字典中把一行行路径读取然后与域名拼接,但是我在跑起程序后出现了问题 ... 
- 踩坑录- Spring Boot - CORS 跨域 - 浏览器同源策略
		1.解决办法,创建一个过滤器,处理所有response响应头 import java.io.IOException; import javax.servlet.Filter; import javax ... 
- 踩坑录-libreoffice fatal error com.sun.start.ucb.Interactive.AugmentedIOException: a folder could not be created
		错误概要: 1.LibreOffice可以正常使用: 2.启动tomcat报错如下: Fatal error The application cannot be started. ][context= ... 
- 踩坑录-IDEA编辑器:找不到TomcatService或ApplicationServers----TomcatService使用指南
		一.找不到TomcatService或ApplicationServers Setp1. 检查IDEA版本 检查IDEA版本是否为Ultimate(终极版需要激活),Community(社区版免费无需 ... 
随机推荐
- 获取tomcat服务器上的部分日志
			Linux下tomcat的日志很大,有的几G大,要用什么工具查看或把日志文件拆解? 一般习惯用 tail 的方式在服务器查看.如果要取下 可以用 tail -2000 xxxx.log > te ... 
- 下载GitHub指定目录的文件
			使用网站 https://minhaskamal.github.io/DownGit/#/home 
- 取消input聚焦时的边框,去除ios点击时,自动添加的底色效果
			/*去除ios点击时,自动添加的底色效果*/ -webkit-tap-highlight-color: rgba(, , , ); /*去除焦点框*/ outline:none; 
- SQL表变量与临时表区别 + 非游标临时表遍历
			SQL表变量与临时表区别 + 非游标临时表遍历 分类: SQL Server2009-11-27 17:01 1196人阅读 评论(2) 收藏 举报 sqlinsert存储sql servermicr ... 
- 怎样让Oracle的存储过程返回结果集
			Oracle存储过程: CREATE OR REPLACE PROCEDURE getcity ( citycode IN VARCHAR2, ref_cursor OUT sys_refcursor ... 
- CSS Paint API绘制透明格子背景实例页面
			CSS代码: .box { width: 180px; height: 180px; background: paint(transparent-grid); } HTML代码: <div cl ... 
- fastclick.js插件使用
			引入插件步骤 ①在HTML页面中添加 <script type='application/javascript' src='/path/to/fastclick.js'></scr ... 
- CSU 2018年12月月赛 G(2219): Coin
			Description 有这样一个众所周知的问题: 你面前有7个硬币,其中有一个劣质的(它比正常的硬币轻一点点),你有一个天平,问需要你需要使用天平多少次能保证找到那个劣质的硬币. 众所周知的算法是: ... 
- laydate组件选择时间段的判断
			前言: 在使用laydate组件的时候,难免会遇到选择时间段,官网给的文档中有选择时间段的组件,但是并不好用,首先只能选择一个月的时间段,有局限性,其次精确到时间的话要先选日期范围再选时间范围,很变态 ... 
- openwrt 配置samba  && ubuntu 配置samba
			前言:在修改opkg update的下载目录,公司里不能连外网,尝试用samba. 配置samba很简单,修改/etc/config/samba文件,拷贝一下share项,再改一下name就可以了. ... 
