excel - Angular 6:更改模板生成页面的 Content-Type
问题描述
注意:这个问题不是关于 ANGULAR 的 HttpClient,而是组件的模板生成的文档。
我想做一个简单但功能强大的 MS EXCEL 导出的老技巧:生成一个包含一个 <table> 的 HTML 文档,并使用“Content-Type: application/xls”提供它。用户的浏览器会将文档转发到本地安装的 MS EXCEL,它会检测到这不是“真正的”.xls,而是 HTML,并将 HTML 很好地转换为电子表格。
我的实现方法是直截了当的:为路径添加一个路由,比如“/export-xls”,以及一个获取数据并将其呈现在其模板中的新组件。
但是我绝对找不到在响应中设置“Content-Type”标头的方法!?我设想在“Routes”数组中我会设置“contentType:'application/xls'”,但没办法。
从 ANGULAR 中生成这样一个文档的最简单和最好的方法是什么?
解决方案
您可以通过以下步骤解决您的问题
- 在本地文件系统中创建一个包含您的表的文件,并使用 URL.createObjectURL 方法为该文件创建一个 URL
- 向该文件发送 http 请求
- 拦截请求并将 contentType: 'application/xls' 添加到响应头
- 收到您的文件后,使用 URL.revokeObjectURL 方法撤销 URL 并从本地文件系统中删除该文件
我不确定您是否可以在不创建物理文件的情况下执行此操作,因为由于响应内容类型,您需要一个 http 请求
推荐阅读
- xml - 制作了简化的 Abbyy xml
- javascript - 如何使用引导程序更改辅助按钮文本颜色?
- reactjs - 我可以使用相同的路由通过使用多个链接来渲染组件吗?
- office-js - Office Excel 加载项 (Office.js) 登录对话框在启用宏的 Excel (.xlsm) 上的 MS Teams 中不起作用
- sql - Django 权限使用过多的数据库
- php - 如何在 Woocommerce 中使用 AJAX 下订单?
- angular - 如何在带有变量的html模板中使用anguluar i18n?
- proxy - 汇总代理配置导致客户端-服务器短路
- javascript - 服务器端呈现的脚本覆盖客户端呈现的 CSS
- azure - 通过 API 更新 ADF 链接服务配置