Excel打开csv乱码问题
前言
程序创建cvs文件,必须blob标识头部,否则会打不开或者乱码
outputStream.write(new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF});
但是加上之后,前端通过简单的a链接或或window.open现在后的文件,会出现blob丢失现象,导致文件依然不被office支持。
思路。前端把文件流完整下载下来,然后创建一个包含Blob 对象的url,即 URL.createObjectURL(blob)
封装的方法
import aixos from 'axios'; // https://www.jianshu.com/p/c330a911d6f5这种情况下 需要用这种办法调用下载,否则office打不开 /**
* 从请求头获取文件名
*/
const getFileName = (contentDisposition: string): any => {
const contentDispositionObj = {};
const contentDispositionFmt = /\;/.test(contentDisposition) ? contentDisposition.split(';') : [contentDisposition];
for (const item of contentDispositionFmt) {
if (/\=/.test(item)) {
const itemSplit = item.split('=');
contentDispositionObj[itemSplit[0]] = itemSplit[1];
} else {
contentDispositionObj[item] = null;
}
}
return contentDispositionObj;
}; /**
* 下载
*/
const download = async (url) => {
const res = await aixos({url, responseType: 'blob'});
const fileName = getFileName(res.headers['content-disposition']).filename;
const blobUrl = window.URL.createObjectURL(res.data);
downloadDom(blobUrl, decodeURIComponent(fileName));
}; /**
* 下载时创建的dom
*/
const downloadDom = (blobUrl, fileName) => {
const a = document.createElement('a');
a.style.display = 'none';
a.download = fileName;
a.href = blobUrl;
a.click();
document.body.removeChild(a);
}; export default download;
使用
const url = window.location.origin + `/v6/api/satisfied/exportSatisfiedDetail?${query}`;
downloadHelp(url);
Excel打开csv乱码问题的更多相关文章
- JAVA之编码---->CSV在文本下是正常的,用EXCEL打开是乱码的问题
JAVA之编码---->CSV在文本下是正常的,用EXCEL打开是乱码的问题 在JAVA下输出文件流,保存成CSV(用UTF-8)文件,怎么处理用EXCEL下是乱码,但是在记事本等其他软件都是正 ...
- excel打开csv文件乱码解决办法
参考链接: https://jingyan.baidu.com/article/4dc408484776fbc8d846f168.html 问题:用 Excel 打开 csv 文件,确认有乱码的问题. ...
- Excel打开csv文件乱码问题的解决办法
excel打开csv 出现乱码怎么解决 https://jingyan.baidu.com/article/ac6a9a5e4c681b2b653eacf1.html CSV是逗号分隔值的英文缩写,通 ...
- excel打开csv 出现乱码
现在做舆情分析的相关项目,在数据处理的时候,发现了一个问题.将数据写入到csv文件,用excel打开(默认)就会出现乱码,如果将数据写入到.xlsx文件就不会出现乱码,因为csv是通用格式,所以我猜想 ...
- excel打开csv格式的文件,数字末尾都变成零,解决方式
excel打开csv格式的文件,数字末尾都变成零,解决方式
- 禅道导出数据,excel打开为乱码处理
禅道里面导出的数据,用Excel打开是乱码(如图),如何解决? 第一步: 第二步: 第3步: 第4步: 第5步: 选择一个储存位置 最后的结果就是这样了
- 如何用Excel打开CSV文件
如何用Excel打开CSV文件? CSV文件一般是MS-SQL 导出查询数据的一种格式.格式结构是 用逗号分隔数据,如果直接用Excel打开那么数据不会自动分列.需要进行一定的设置.下面是设置过程. ...
- 用java代码解决excel打开csv文件乱码问题
Java 读取csv文件后,再保存到磁盘上,然后直接用Excel打开,你会发现里面都是乱码. 贴上代码: public class Test { public static void main(S ...
- excel打开csv 出现乱码怎么解决
CSV是逗号分隔值的英文缩写,通常都是纯文本文件.CSV格式是分隔的数据格式,有字段/列分隔的逗号字符和记录/行分隔换行符.通常CSV文件可以用EXCEL正常打开,但是许多人都有这样的经历,使用EXC ...
- postgresql 导出csv格式的数据后使用excel打开中文乱码的问题
两种方法: 1>使用excel 的自文本导入功能,具体方法: 1) 打开 Excel 2) 执行“数据”->“自文本” 3) 选择 CSV 文件,出现文本导入向导 4) 选择“分隔符号”, ...
随机推荐
- eolinker校验规则之 Json结构定位:返回结果校验的方法和案例(父参、子参内容校验)
如下图,订单编号的参数在data父字段内 Eolinker返参校验的写法就需要有些变化 先写Data父参,添加子字段,再写子参 预期结果不支持全局变量 可通过添加绑定,绑定前一个接口返回参数,进行匹配
- Sentinel源码—3.ProcessorSlot的执行过程
大纲 1.NodeSelectorSlot构建资源调用树 2.LogSlot和StatisticSlot采集资源的数据 3.Sentinel监听器模式的规则对象与规则管理 4.AuthoritySlo ...
- SpringMVC的执行过程
环境准备 package org.example.springmvclearn; public record Greeting(long id, String content) { } package ...
- Windows系统设置开机自启动+分块压缩+文件共享
开机自启动+分块压缩+文件共享 一.设置开机自启动 win+R 打开运行窗口,输入 shell:startup 此时桌面会弹出一个目录文件夹,只需要将需要启动的软件放入该文件夹即可开机自启. C:\U ...
- linux文件或目录权限、权限字符转为权限值
1.字符的含义 当ll一个目录时会有类似下面的输出 [root@node2 ~]# ll /usr/ total 112 dr-xr-xr-x. 2 root root 24576 Oct 13 23 ...
- 容器化 MCP Server!
大家好!我是韩老师. 本文是 MCP 系列文章的第五篇,之前的四篇是: Code Runner MCP Server,来了! 从零开始开发一个 MCP Server! 一键安装 MCP Server! ...
- IDEA问题之“MyBatis插件安装【MyBatisX】”
一.场景 在SSM框架中带有XML文件的查找很是麻烦,特别是在ID命名有大量重复时 而这个插件就可以,让你直接从Service实现类中直接跳到XML中 还有些其他功能,可以探索探索 一.配置步骤 1. ...
- 遇到过的错误之“日期计算错误,Java8API导致Unsupported unit: Seconds【时间类错误】"
一.问题 场景:在计算相差天数时爆出的错误 报错内容:java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Se ...
- 第六章: SEO与交互指标
第6章: SEO与交互指标 在当今的SEO环境中,Google越来越重视用户交互指标,如页面停留时长.交互性能等.本章将深入探讨如何优化网页速度和用户交互体验,以提升SEO效果和用户满意度. 1. G ...
- AI智能体策略FunctionCalling和ReAct有什么区别?
Dify 内置了两种 Agent 策略:Function Calling 和 ReAct,但二者有什么区别呢?在使用时又该如何选择呢?接下来我们一起来看. 1.Function Calling Fun ...