javascript - 从 html 表创建 excel
问题描述
我不想抓取 HTML 表格并将其保存为 excel 文件。
我发现这篇文章:
https ://www.codexworld.com/export-html-table-data-to-excel-using-javascript/
轻松编码:
<button onclick="exportTableToExcel('tblData', 'members-data')">Export Table Data To Excel File</button>
function exportTableToExcel(tableID, filename = ''){
var downloadLink;
var dataType = 'application/vnd.ms-excel';
var tableSelect = document.getElementById(tableID);
var tableHTML = tableSelect.outerHTML.replace(/ /g, '%20');
// Specify file name
filename = filename?filename+'.xls':'excel_data.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();
}
}
这段代码的问题是,当我在 Google 电子表格中打开文件时,我看到了 html 代码。当然,我希望它是一个没有 html 代码的 excel 表。问题是什么?
有一条评论:
//I had to encode # signs as well before the script would work with any non-Safari browser:
var tableHTML = tableSelect.outerHTML.replace(/ /g, ‘%20’).replace(/#/g, ‘%23’);
这不会解决html问题。
解决方案
我的代码实际上适用于 Excel。
我在 Google Sheet 中进行测试,这就是为什么它不起作用。
推荐阅读
- c# - 继承两个类,分别从接口实现
- mysql - 在这种情况下我是否使用命令“sum”?
- java - 使用 DMSDK 从 Marklogic 批量摄取数据到 RDBMS
- c# - 控制器文件不会出现在项目中
- javascript - 错误:警告:setState(...):在现有状态转换期间无法更新(例如在 `render` 或另一个组件的构造函数中)
- sql - PLS-00642:SQL 语句中不允许本地集合类型。我正在使用 oracle datadase 12c
- r - 如何读取未知编码(FDF)的文件
- node.js - 如何在打字稿中获得与 Express 的 Post 方法相同的数据类型
- angular - 如何解决 Angular 中的 HTTPErrosResponse 问题
- android - 从其他 PC 编译时,Google Fit 应用程序无法正常工作