首页 > 其他分享 >Vue3+Typescript+Axios+.NetCore实现导出Excel文件功能

Vue3+Typescript+Axios+.NetCore实现导出Excel文件功能

时间:2024-11-25 13:30:26浏览次数:9  
标签:Axios maintenanceOrderSettlementId NetCore url title Excel value xhr var

前端代码

//导出Excel
const exportMaintenanceOrderSettlementItemExcelClick = async () => {
  

  let url = `${VITE_APP_API_URL}/api/app/maintenance/settlement-service-item/${currentMaintenanceOrderId.value}/${currentMaintenanceOrderSettlementRow.value.id}`;
  let fileName = `${currentMaintenanceOrder.value.title} ${currentMaintenanceOrderSettlementRow.value.nYearAndMonth} 第【${currentMaintenanceOrderSettlementRow.value.payNum}】期结算服务清单.xlsx`;

  let tokenData = getToken();
  var xhr = new XMLHttpRequest();
  xhr.open("get", url, true); // get、post都可
  xhr.responseType = "blob"; // 转换流
  xhr.setRequestHeader("Authorization", formatToken(tokenData.accessToken)); // token键值对
  xhr.onload = function () {
    if (this.status == 200) {
      var blob = this.response;
      var a = document.createElement("a");
      var url = window.URL.createObjectURL(blob);
      a.href = url;
      a.download = fileName; // 文件名
    }
    a.click();
    window.URL.revokeObjectURL(url);
    exportLoading.value = false;
  };
  xhr.send();
};

后端代码

在后端建一个控制器,控制器方法代码如下:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
/// <summary>
/// 导出结算服务项
/// </summary>
/// <param name="maintenanceOrderId"></param>
/// <param name="maintenanceOrderSettlementId"></param>
/// <returns></returns>
[HttpGet]
[Route("settlement-service-item/{maintenanceOrderId}/{maintenanceOrderSettlementId}")]
public async Task<FileResult> ExportMaintenanceOrderSettlementServiceItemsExcelAsync(Guid maintenanceOrderId, Guid maintenanceOrderSettlementId)
{
   var title = $"{maintenanceOrderSettlementId}.xlsx";
   var contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";//octet-stream
   var workbook = await _maintenanceOrderServiceItemAppService.GetExportMaintenanceOrderSettlementServiceItemsExcelAsync(maintenanceOrderId, maintenanceOrderSettlementId);


   var bytes = workbook.ConvertToBytes();

   if (bytes != null)
   {
      // 设置响应头
      var cd = new System.Net.Mime.ContentDisposition
      {
         Inline = false,
         FileName = $"{title}", // 指定下载的文件名
         CreationDate = DateTime.Now
      };
      // 添加必须的响应头
      Response.ContentType = contentType;
      Response.Headers.Add("Content-Disposition", cd.ToString());

      // 返回文件流
      return File(bytes, contentType,title,true);

   }


   return null;

}

标签:Axios,maintenanceOrderSettlementId,NetCore,url,title,Excel,value,xhr,var
From: https://blog.csdn.net/llyfe2006/article/details/144003585

相关文章

  • 不仅仅是Excel,这些工具让协作更简单!
    在现代办公中,团队协作和信息共享变得愈发重要。随着Excel多人协同编辑功能的普及,工作效率和团队协作水平有了显著提升。通过多人同时编辑同一文档,无论是数据分析、财务报表,还是项目计划,团队成员都能实时看到彼此的修改,避免了版本冲突和重复劳动,提高了工作效率。除了Excel本身的......
  • 一种word培训试题转为excel的简单办法,无需动手动脑
    分享早下班的终极秘诀~今天本来是个愉快的周五,心里想着周末的聚会和各种安排,然而突然一个加急任务砸了过来——要求在下周一提交一份精细整理的Excel表格!打开Word文件一看,成堆的试题内容需要整理到Excel里。看着满屏的题目,头皮一阵发麻,周末也变得遥不可及,工作量太大了吧?别急......
  • 不用第三方库,说说纯js怎么实现读取和导出excel?
    纯JavaScript读取和导出Excel,不使用第三方库,主要依赖浏览器提供的FileAPI和BlobAPI。对于较简单的Excel文件(例如只有文本数据,没有样式、公式等),可以使用以下方法:1.读取Excel文件(.csv或.tsv格式):最简单的方法是处理CSV(逗号分隔值)或TSV(制表符分隔值)文件。这......
  • 使用眼精星票证识别系统将行驶证转为结构化Excel教程
    在现代办公环境中,高效处理各类文件和数据至关重要。对于行驶证等证件信息的提取和整理,眼精星票证识别系统提供了一个快速、准确的解决方案。以下是如何使用该系统将行驶证信息转化为结构化Excel文件的详细操作步骤。一、下载安装眼精星票证识别系统来百度APP畅享高清图片......
  • 高校智慧平台SExcelExpErr存在SQL注入漏洞
    0x01阅读须知        本文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考。本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁......
  • EasyExcel 如何处理大文件
    EasyExcel是阿里巴巴开源的一个用于高效处理大规模Excel文件的Java库。它采用了流式读取和写入的方式,显著降低了内存占用,并提高了处理效率。以下是如何使用EasyExcel处理大文件的一些建议:一、流式读取EasyExcel默认采用流式读取方式,这意味着它不会一次性将整个Excel......
  • Excel-Ctrl+Enter键的妙用
    一、Ctrl+Enter键的妙用 1.1 Ctrl+Enter键在多连续区域输入相同内容比如我要在一块区域内输入相同的数据,我首先选中这块区域,然后在第一个表格内输入数据-输入之后-(不要按回车键)按Ctrl+Enter键,即可全部表格输入同一数据  1.2 Ctrl+Enter键在非连续区域输入相同内容 先......
  • .NET导出Excel的四种方法及评测
    .NET导出Excel的四种方法及评测 .NET导出Excel的四种方法及评测导出Excel是.NET的常见需求,开源社区、市场上,都提供了不少各式各样的Excel操作相关包。本文,我将使用NPOI、EPPlus、OpenXML、Aspose.Cells四个市面上常见的库,各完成一个导出Excel示例。然后对其代码风格和性能做......
  • 如何用axios发送ajax请求(函数)
    在上篇文章的基础上将格式改为:btns[2].onclick=function(){axios({//请求方法method:'POST',url:'/axios-server',params:{vip:10,......
  • Excel DLL丢失?Excel DLL文件下载指南及常见问题解决方案
    当您在使用MicrosoftExcel时遇到提示DLL文件丢失或损坏的情况,这可能会影响软件的正常运行。为了帮助您解决这一问题,本文提供了ExcelDLL文件的下载指南,并针对常见问题给出了解决方案。一、ExcelDLL文件下载指南确定缺失的DLL文件:首先,您需要确定是哪个DLL文件丢失或损坏......