使用 Javascript 下载 HTML table 到 Excel
Download HTML table to Excel by using Javascript
在我的 Flask 应用程序中,我创建了一个按钮,用于将 HTML table 的内容提取到 Excel 文件中。我使用 Javascript 从我的界面中以 Excel 格式提取 HTML table 的内容。
不幸的是,当我运行下面的代码时,下载的Excel文件是空的。你能帮我更正下面的代码吗?谢谢。
function exportTableToExcel(filename = ''){
let downloadLink;
let dataType = 'application/vnd.ms-excel';
let tableSelect = document.getElementsByTagName("table");
let tableHTML = tableSelect[0].outerHTML.replace(/ /g, '%20');
// Specify file name
filename = 'All_Issues.xls';
// Create download link element
downloadLink = document.createElement("a");
document.body.appendChild(downloadLink);
if(navigator.msSaveOrOpenBlob){
var blob = new Blob(['\ufeff', tableHTML], {
type: dataType
});
navigator.msSaveOrOpenBlob( blob, filename);
}else{
// Create a link to the file
downloadLink.href = 'data:' + dataType + ', ' + tableHTML;
// Setting the file name
downloadLink.download = filename;
//triggering the function
downloadLink.click();
}
}
getElementsByTagName() 函数returns一个数组,因此您必须获取第一个元素。
let tableHTML = tableSelect[0].outerHTML.replace(/ /g, '%20');
在我的 Flask 应用程序中,我创建了一个按钮,用于将 HTML table 的内容提取到 Excel 文件中。我使用 Javascript 从我的界面中以 Excel 格式提取 HTML table 的内容。
不幸的是,当我运行下面的代码时,下载的Excel文件是空的。你能帮我更正下面的代码吗?谢谢。
function exportTableToExcel(filename = ''){
let downloadLink;
let dataType = 'application/vnd.ms-excel';
let tableSelect = document.getElementsByTagName("table");
let tableHTML = tableSelect[0].outerHTML.replace(/ /g, '%20');
// Specify file name
filename = 'All_Issues.xls';
// Create download link element
downloadLink = document.createElement("a");
document.body.appendChild(downloadLink);
if(navigator.msSaveOrOpenBlob){
var blob = new Blob(['\ufeff', tableHTML], {
type: dataType
});
navigator.msSaveOrOpenBlob( blob, filename);
}else{
// Create a link to the file
downloadLink.href = 'data:' + dataType + ', ' + tableHTML;
// Setting the file name
downloadLink.download = filename;
//triggering the function
downloadLink.click();
}
}
getElementsByTagName() 函数returns一个数组,因此您必须获取第一个元素。
let tableHTML = tableSelect[0].outerHTML.replace(/ /g, '%20');