Javascript 使用datetime now命名文件(JS)
我有代码可以下载HTML表格,比如excel 这是代码Javascript 使用datetime now命名文件(JS),javascript,html,css,excel,Javascript,Html,Css,Excel,我有代码可以下载HTML表格,比如excel 这是代码 var tableToExcel=(函数(){ var uri='data:application/vnd.ms excel;base64', 模板=“{table}”, base64=函数{ 返回窗口.btoa(unescape(一个或多个组件))) }, 格式=函数(s,c){ 返回s.replace(/{(\w+)}/g,函数(m,p){ 返回c[p]; }) } 返回函数(表、名称){ 如果(!table.nodeType)tab
var tableToExcel=(函数(){
var uri='data:application/vnd.ms excel;base64',
模板=“{table}”,
base64=函数{
返回窗口.btoa(unescape(一个或多个组件)))
},
格式=函数(s,c){
返回s.replace(/{(\w+)}/g,函数(m,p){
返回c[p];
})
}
返回函数(表、名称){
如果(!table.nodeType)table=document.getElementById(table);
变量ctx={
工作表:名称| |‘工作表’,
表:table.innerHTML
}
window.location.href=uri+base64(格式(模板,ctx));
}
})()
如果您想在客户端实现它,那么HTML5在中提供了
属性
将URL设置为锚元素的href,并强制onClick()事件下载名称为的文件
例如:
变量链接=[…]
var\u html=links.map(link=>{
返回``
}).join();
body.innerHTML+=`${U html}`;
from(document.querySelectorAll('.downloadlista')).map(anchor=>anchor.click());
显然,有很多优化需要完成,这是一个粗糙的例子。但是应该可以工作您应该使用带有下载
属性的
元素来确定文件名
下面是一个如何动态创建
元素并设置src
和download
要下载的属性的示例:
var tableToExcel=(函数(){
var uri='data:application/vnd.ms excel;base64',
模板=“{table}”,
base64=函数{
返回窗口.btoa(unescape(一个或多个组件)))
},
格式=函数(s,c){
返回s.replace(/{(\w+)}/g,函数(m,p){
返回c[p];
})
}
返回函数(表、名称){
//如果(!table.nodeType)table=document.getElementById(table);
变量ctx={
工作表:名称| |‘工作表’,
表:table.innerHTML
}
//以下是如何使用datetime文件名下载。
//日期时间文件名
var filename=new Date().getTime();
var-element=document.createElement('a');
setAttribute('href',uri+base64(格式(模板,ctx));
setAttribute('download',filename);
element.style.display='none';
document.body.appendChild(元素);
元素。单击();
document.body.removeChild(元素);
}
})()
var table=document.getElementsByTagName('table')[0];
var newTableToExcel=新tableToExcel(表'myname')代码>
1.
2.
3.
1.
2.
3.
您也可以共享您的HTML代码吗?如何调用tableToExcel()
函数?如果你能分享你的代码的可运行的演示,那就太好了post@VicJordanit的html解决方案,但我需要日期。我认为它需要在js中使用javascript创建html元素。将其附加到dom。发送onClick事件。从dom中分离。将文件名设置为日期时间value@EugeneSukh也许试试这个。这是html解决方案,但我需要日期。我想它应该是js?谢谢它帮了我
<a href="http://www.google.com/.." download="download.xls">download me</a>
<script>
var links = [....]
var _html = links.map(link => {
return `<a href="${link}" download="${Date.now()}.xls">`
}).join();
body.innerHTML += `<div style="display:none;" class="downloadList">${_html}</div>`;
Array.from(document.querySelectorAll('.downloadList a')).map(anchor => anchor.click());