一、需求

在我们的日常开发中,可能经常需要遇到excel的导出,以往excel的导出服务器端都是使用的 ​ ​GET​ ​​ 方法,但是某些情况下,服务器端只能使用 ​ ​POST​ ​ 方法,那么我们有没有好的方法实现excel的导出呢,并且页面最好不要刷新。

二、实现思路

1、方案一:我们可以使用​ ​ajax​ ​​拿到服务器端返回的 ​ ​数据下载流​ ​​,然后借助 ​ ​Blob​ ​​ 对象,在动态的创建一个 ​ ​a​ ​​ 链接,那么也可以实现。
2、方案二:动态创建一个 ​​ ​iframe​ ​​ 标签下载,这种方案可以​ ​POST​ ​​请求可能就无法下载了。
3、方案三:页面上动态的创建一个​​ ​form​ ​​然后提交这个​ ​form​ ​​。
此处我们使用 ​​ ​方案一​ ​​ 即使用 ​ ​ajax​ ​ 来实现。

三、实现步骤

1、​ ​ajax​ ​​请求的发送我们使用​ ​axios​ ​​库来完成,​ ​axios​ ​​的​ ​responseType​ ​​需要设置成​ ​Blob​ ​​,默认是​ ​json​ ​​。
2、创建 ​​ ​Blob​ ​​对象
3、创建​​ ​a​ ​​标签
4、触发下载动作

四、前端代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax 文件导出</title>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<button type="button" onclick="exportExcel()">导出</button>

<script type="text/javascript">
function exportExcel() {
axios({
method: 'POST',
url: "http://localhost:8080/export",
timeout: 5000,
responseType: 'blob'
}).then(function (res) {
var data = res.data;
var blob = new Blob([data], {type: 'application/octet-stream'});
var url = URL.createObjectURL(blob);
var exportLink = document.createElement('a');
exportLink.setAttribute("download","ajax文件下载.xlsx");
exportLink.href = url;
document.body.appendChild(exportLink);
exportLink.click();
})
}
</script>
</body>
</html>

完整代码如下

​ajax文件下载​ ​ https://gitee.com/huan1993/front/tree/master/ajax-download

pymysql insert 动态数据

http://www.oracle.com/technology/global/cn/sample_code/tech/pl_sql/htdocs/x/Case/start.htm虽然 CASE 结构基本上没有给出任何新的语义,但它们的确接受一种更简洁的表示法,并且相对于 IF 结构表示法而言消除了一些重复。看下面的判定表的执行情况,是依据特殊表达式的值来决定执行情况。程序段… case n

cv命名空间是opencv3引入的还是opencv4引入的

Opencv 从c到c++ Opencv2.0版本发布后,其新的C++接口,cv::Mat代替了原来c风格的CvMat和IplImage.目前,2.0版本对c的接口也是支持的。 相对于c的接口,c++的cv::Mat统一了矩阵和图像这两个概念。事实上,矩阵和图像其实是一样的。由于cv::Mat是c++的类,所以也具备了相关的一些特征。例如,内存的释放。在C++中,一个对象超出其使用范围后,会自

dockercompose部署portainer

文章目录一、文件结构二、配置文件三、创建nacos数据库四、docker-compose.yml文件五、创建容器六、验证 一、文件结构conf #配置文件夹 application.properties #配置文件 data #数据文件夹 logs #日志文件夹二、配置文件vi application.properties #新建配置文件配置信息如下:# 数据库相关配置 spring.d