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) 选择“分隔符号”, ...
随机推荐
- requirejs的简单使用,requirejs报错Uncaught Error: Mismatched anonymous define() module: …
requirejs的简单使用 define()方法的3个参数: 参数1为模块名称(不填则以当前js的文件名定义一个匿名模块), 参数2为依赖项数组(可不填), 参数3为模块的实现 引入jQuery: ...
- 容器化 MCP Server!
大家好!我是韩老师. 本文是 MCP 系列文章的第五篇,之前的四篇是: Code Runner MCP Server,来了! 从零开始开发一个 MCP Server! 一键安装 MCP Server! ...
- hadoop部署安装(五)SPARK
1. 配置spark 4.1 解压压缩包 [root@centosmv ~]# tar xf spark-2.4.4-bin-without-hadoop.tgz [root@centosmv ~]# ...
- K8s新手系列之ConfigMap资源
概述 在 Kubernetes(K8s)中,ConfigMap 是一种 API 对象,用于将非机密性的数据保存到键值对中.Pod 可以将其用作环境变量.命令行参数或者存储卷中的配置文件. Config ...
- windows 配置jdk8环境变量
JAVA_HOME: E:\Android\Java\jdk1.8.0_131 PATH: %JAVA_HOME\%bin 也可以只配置PATH就可以,如 E:\Android\Java\jdk1.8 ...
- 时间工具类之“LocalDateTime方案转换地域性时差问题->UTC时间转纽约时间”
一.使用方法 1.获取纽约ZoneId[纽约时区的ZoneId标识为"America/New_York"] -> ZoneId.of("America/New_Yo ...
- JavaScript编程实践:打造优雅健壮的代码
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- C++11 Lambda表达式(匿名函数)详解
使用STL时,往往会大量用到函数对象,为此要编写很多函数对象类.而有的函数对象类只用定义一个对象,而且这个对象也只使用一次,那编写这样一个函数对象就很浪费了.而且有时这定义函数对象类的地方和使用函数对 ...
- Possible data inputs to DataFrame constructor
Possible data inputs to DataFrame constructor: import pandas as pd import numpy as np (1) 2D ndarray ...
- 一个加速github的简单方法
除了使用梯子外,我们可以在本地host文件里添加ip来使之更为稳定: Windows用户在C:\Windows\System32\drivers\etc下的hosts文件里的底部添加如下内容: # G ...