前言
程序创建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. 魔百和CM311-1a YST线刷精简固件(可救砖)

    固件说明:1. 魔百和CM311-1a YST测试可用,其它型号自行测试,请慎重使用: 2.支持原装遥控器,语音蓝牙遥控器:3.固件压缩包有刷机教程,请一定仔细阅读. 4.该固件内置应用商店,可以下载 ...

  2. 使用Python解析求解拉普拉斯方程

    引言 大家好!今天我们将探讨一个经典的偏微分方程-拉普拉斯方程,并使用 Python 进行求解.拉普拉斯方程广泛应用于物理学中,尤其是在电磁学.流体力学和热传导等领域.通过这篇文章,你将了解什么是拉普 ...

  3. gRPC 和传统 RPC 有啥不一样?一篇讲清楚!

    现在大家做系统开发,都喜欢搞"微服务架构"--简单说就是把一个大系统拆成很多小服务,这样更灵活也更容易扩展.那这些服务之间怎么沟通呢?就得靠一种技术叫 RPC(远程过程调用).今天 ...

  4. doctrine 与 mysql 数据类型的详细转换规则。

    doctrine 与 mysql 数据类型的详细转换规则 // mysql -> doctrine array( 'tinyint' => 'boolean', 'smallint' =& ...

  5. 2025dsfz集训Day7: KMP与Trie树

    Day7: KMP与Trie树 \[Designed\ By\ FrankWkd\ -\ Luogu@Lwj54joy,uid=845400 \] 特别感谢 此次课的主讲 - Kwling KMP算法 ...

  6. Git常用命令大全:git命令基本用法

    1. 常用的git命令 Git 常用的六个命令是什么? ·"git clone"克隆代码: ·"git log"查看日志: ·"git tag&quo ...

  7. DOC,PDF,PPT文件转换为HTML代码记录

    pom文件引入 <repositories> <repository> <id>com.e-iceblue</id> <url>http:/ ...

  8. Nacos简介—3.Nacos的配置简介

    大纲 1.Nacos生产集群Web端口与数据库配置 2.Nacos生产集群的Distro协议核心参数 3.Nacos打通CMDB实现跨机房的就近访问 4.Nacos基于SPI动态扩展机制来获取CMDB ...

  9. 在鸿蒙Next中开发一个月历组件

    最近一直在出差,工作繁忙,很久没有时间更新文章了,连华为开发者大会也错过了.今天周末,忙里偷闲给大家分享一个鸿蒙月历组件. 这样的组件大家在工作中应该经常会遇到,而鸿蒙又没有提供一个这样的系统组件,今 ...

  10. MCP 实践系列:EdgeOne 在线部署HTML页面

    今天,我们将专门讲解一下 EdgeOne 在线部署 HTML 页面时所提供的 MCP 功能.这个功能对于个人用户来说非常实用,尤其适合一些小型应用场景,比如开发一个简单的小游戏,或者搭建一个小型网站, ...