需要在javascript中将二进制文件下载为excel
Posted
技术标签:
【中文标题】需要在javascript中将二进制文件下载为excel【英文标题】:Need to download a binary file as an excel in javascript 【发布时间】:2021-10-01 16:19:02 【问题描述】:问题是我想将后端的响应下载到 excel 文件中,并且响应被 talend API 识别为二进制 这是我的代码
function get_excels(type, id)
$.ajax(
method: "GET",
url: URL+id+"/"+type+"/excel",
success: function (result)
var blob = new Blob([result],
type: "application/json",
);
const link = document.createElement("a");
link.href = URL.createObjectURL(blob);
console.log(link.href);
link.download = `excel.xlsx`;
link.click();
,
);
<i onclick="get_excels('transactions', 1)" class="fas fa-file-excel"></i>
当我下载文件时,Microsoft excel 会抛出此错误
我需要知道如何处理来自 API 的响应并将其下载为 excel 文件。 如果您能帮助我,我将不胜感激。
【问题讨论】:
你检查了吗? ***.com/questions/34993292/… @TheRakeshPurohit 是的,但它会引发我应该解决的错误。 【参考方案1】:无需读取 ajax 内容然后下载,您可以让浏览器直接下载它,它会同时处理文件名和扩展名 - 这也更节省时间/内存。
function get_excels(type, id)
const a = document.createElement('a')
a.href = URL+id+"/"+type+"/excel"
a.download = true // the browser will download the file and name it as the original file name and extension
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
【讨论】:
我认为你误会了。 ajax请求的结果就是我需要下载的!不是你提到的链接! get方法的结果就是我拥有的文件。 @NiazEstefaie 当你请求它时,你应该从 URL+id+"/"+type+"/excel" 得到什么? 应该是从API获取excel文件以上是关于需要在javascript中将二进制文件下载为excel的主要内容,如果未能解决你的问题,请参考以下文章