当前位置: 首页 > news >正文

.net6Api后台+uniapp导出Excel

之前的这个是vue3写法,后端是.net6Api.net6Api后台+VUE3前端实现上传和下载文件全过程_vue3 下载文件-CSDN博客

在现在看来似乎搞的复杂了,本次记录一下.net6Api后台+uniapp导出Excel。

后端和之前的不一样,前端也和之前的不一样,只是功能看起来是一样的,实现的方法截然不同,本次的方法更加的简单。

一.后端,.net6api

使用的是EPPlus

        [HttpGet]public async Task<IActionResult> DownloadFile(string fileName){ExcelPackage.LicenseContext = LicenseContext.Commercial;ExcelPackage.LicenseContext = LicenseContext.NonCommercial;using (var package = new ExcelPackage()){var worksheet = package.Workbook.Worksheets.Add("Sheet1");worksheet.Cells["A1"].Value = "Hello";worksheet.Cells["B1"].Value = "World!";var excelBytes = await package.GetAsByteArrayAsync();return File(excelBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"{fileName}.xlsx");}}

运行webapi的效果

此时,点击下载文件,就可以了 

二.前端,uniapp

前端有2种方式

1.首先创建uniapp项目。

2.下载axios和file-saver

3.使用

<template><div><button @click="downloadExcel">下载 Excel</button></div>
</template><script>import axios from 'axios';import {saveAs} from 'file-saver';export default {methods: {async downloadExcel() {try {const response = await axios.get('http://localhost:7521/api/Export/DownloadFile?fileName=1', {responseType: 'blob', // 设置响应类型为 blob});// 创建一个 Blob 对象,用于保存 Excel 数据const blob = new Blob([response.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});//第一种方式saveAs(blob, 'example.xlsx');//第二种方式// 创建一个隐藏的 a 标签,用于触发下载// const link = document.createElement('a');// link.href = URL.createObjectURL(blob);// link.download = '1.xlsx';// link.style.display = 'none';// document.body.appendChild(link);// link.click();// document.body.removeChild(link);} catch (error) {console.error('下载失败:', error);}},},};
</script>

第一种使用的是file-saver

第二种使用的是document 

三.效果

运行uniapp,同时开启后端的webapi

点击下载

本文来源:

.net6Api后台+uniapp导出Excel-CSDN博客 

相关文章:

  • @Autowired 与@Resource的区别
  • <机器学习初识>——《机器学习》
  • 第十三届蓝桥杯嵌入式省赛程序设计详细题解
  • openvpn证书过期解决
  • SingleSpa微前端基本使用以及原理
  • vue的导入
  • HTML 01
  • requests模块的其他方法
  • HTML静态网页成品作业(HTML+CSS)——电影网首页网页设计制作(1个页面)
  • 力扣hot100:76.最小覆盖子串(滑动窗口)
  • Android UI:ViewTree中的操作
  • 惬意上手Redis
  • 使用Anaconda创建Python指定版本的虚拟环境
  • 富格林:揭秘应对暗箱操作正规技巧
  • 【Linux进阶之路】HTTP协议
  • 【node学习】协程
  • 2019.2.20 c++ 知识梳理
  • CentOS7简单部署NFS
  • JavaScript异步流程控制的前世今生
  • Rancher如何对接Ceph-RBD块存储
  • Twitter赢在开放,三年创造奇迹
  • Vue全家桶实现一个Web App
  • web标准化(下)
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 分类模型——Logistics Regression
  • 判断客户端类型,Android,iOS,PC
  • 深度学习入门:10门免费线上课程推荐
  • 详解NodeJs流之一
  • 学习ES6 变量的解构赋值
  • 学习使用ExpressJS 4.0中的新Router
  • 一个项目push到多个远程Git仓库
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • %@ page import=%的用法
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (1)(1.9) MSP (version 4.2)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (vue)页面文件上传获取:action地址
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (五)关系数据库标准语言SQL
  • (小白学Java)Java简介和基本配置
  • (转)C#调用WebService 基础
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)jQuery 基础
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .Net 高效开发之不可错过的实用工具
  • .NET 回调、接口回调、 委托
  • .NET 依赖注入和配置系统
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NetCore部署微服务(二)