前言
程序创建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乱码问题的更多相关文章

  1. JAVA之编码---->CSV在文本下是正常的,用EXCEL打开是乱码的问题

    JAVA之编码---->CSV在文本下是正常的,用EXCEL打开是乱码的问题 在JAVA下输出文件流,保存成CSV(用UTF-8)文件,怎么处理用EXCEL下是乱码,但是在记事本等其他软件都是正 ...

  2. excel打开csv文件乱码解决办法

    参考链接: https://jingyan.baidu.com/article/4dc408484776fbc8d846f168.html 问题:用 Excel 打开 csv 文件,确认有乱码的问题. ...

  3. Excel打开csv文件乱码问题的解决办法

    excel打开csv 出现乱码怎么解决 https://jingyan.baidu.com/article/ac6a9a5e4c681b2b653eacf1.html CSV是逗号分隔值的英文缩写,通 ...

  4. excel打开csv 出现乱码

    现在做舆情分析的相关项目,在数据处理的时候,发现了一个问题.将数据写入到csv文件,用excel打开(默认)就会出现乱码,如果将数据写入到.xlsx文件就不会出现乱码,因为csv是通用格式,所以我猜想 ...

  5. excel打开csv格式的文件,数字末尾都变成零,解决方式

    excel打开csv格式的文件,数字末尾都变成零,解决方式

  6. 禅道导出数据,excel打开为乱码处理

    禅道里面导出的数据,用Excel打开是乱码(如图),如何解决? 第一步: 第二步: 第3步: 第4步: 第5步: 选择一个储存位置 最后的结果就是这样了

  7. 如何用Excel打开CSV文件

    如何用Excel打开CSV文件? CSV文件一般是MS-SQL 导出查询数据的一种格式.格式结构是 用逗号分隔数据,如果直接用Excel打开那么数据不会自动分列.需要进行一定的设置.下面是设置过程. ...

  8. 用java代码解决excel打开csv文件乱码问题

      Java 读取csv文件后,再保存到磁盘上,然后直接用Excel打开,你会发现里面都是乱码. 贴上代码: public class Test { public static void main(S ...

  9. excel打开csv 出现乱码怎么解决

    CSV是逗号分隔值的英文缩写,通常都是纯文本文件.CSV格式是分隔的数据格式,有字段/列分隔的逗号字符和记录/行分隔换行符.通常CSV文件可以用EXCEL正常打开,但是许多人都有这样的经历,使用EXC ...

  10. postgresql 导出csv格式的数据后使用excel打开中文乱码的问题

    两种方法: 1>使用excel 的自文本导入功能,具体方法: 1) 打开 Excel 2) 执行“数据”->“自文本” 3) 选择 CSV 文件,出现文本导入向导 4) 选择“分隔符号”, ...

随机推荐

  1. requirejs的简单使用,requirejs报错Uncaught Error: Mismatched anonymous define() module: …

    requirejs的简单使用 define()方法的3个参数: 参数1为模块名称(不填则以当前js的文件名定义一个匿名模块), 参数2为依赖项数组(可不填), 参数3为模块的实现 引入jQuery: ...

  2. 容器化 MCP Server!

    大家好!我是韩老师. 本文是 MCP 系列文章的第五篇,之前的四篇是: Code Runner MCP Server,来了! 从零开始开发一个 MCP Server! 一键安装 MCP Server! ...

  3. hadoop部署安装(五)SPARK

    1. 配置spark 4.1 解压压缩包 [root@centosmv ~]# tar xf spark-2.4.4-bin-without-hadoop.tgz [root@centosmv ~]# ...

  4. K8s新手系列之ConfigMap资源

    概述 在 Kubernetes(K8s)中,ConfigMap 是一种 API 对象,用于将非机密性的数据保存到键值对中.Pod 可以将其用作环境变量.命令行参数或者存储卷中的配置文件. Config ...

  5. windows 配置jdk8环境变量

    JAVA_HOME: E:\Android\Java\jdk1.8.0_131 PATH: %JAVA_HOME\%bin 也可以只配置PATH就可以,如 E:\Android\Java\jdk1.8 ...

  6. 时间工具类之“LocalDateTime方案转换地域性时差问题->UTC时间转纽约时间”

    一.使用方法 1.获取纽约ZoneId[纽约时区的ZoneId标识为"America/New_York"] -> ZoneId.of("America/New_Yo ...

  7. JavaScript编程实践:打造优雅健壮的代码

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  8. C++11 Lambda表达式(匿名函数)详解

    使用STL时,往往会大量用到函数对象,为此要编写很多函数对象类.而有的函数对象类只用定义一个对象,而且这个对象也只使用一次,那编写这样一个函数对象就很浪费了.而且有时这定义函数对象类的地方和使用函数对 ...

  9. Possible data inputs to DataFrame constructor

    Possible data inputs to DataFrame constructor: import pandas as pd import numpy as np (1) 2D ndarray ...

  10. 一个加速github的简单方法

    除了使用梯子外,我们可以在本地host文件里添加ip来使之更为稳定: Windows用户在C:\Windows\System32\drivers\etc下的hosts文件里的底部添加如下内容: # G ...