有没有办法从 javascript 生成 .xslx 文件并允许用户通过 javascript 下载它?此页面适用于在没有互联网连接的情况下在 html 5 中离线运行。
问问题
5849 次
5 回答
1
您可以生成一个数据 URI,并让用户保存链接。但是,IE8 对数据 URI 的支持非常有限。有 32 KB 的限制,不允许与a href
.
此外,您仍然需要找到一个实际的 XLSX JS 库……但这是可能的。
于 2010-04-30T05:22:02.380 回答
1
Ed Spencer已经成功地做到了这一点。这个项目使用 EXT DataGrid 作为数据源,但我相信你可以很容易地适应它。
于 2010-04-30T09:21:48.830 回答
0
您可以使用 OpenXML SDK for Javascript http://openxmlsdkjs.codeplex.com/生成任何 Office 文档
至于允许用户从 JS 保存文件,我推荐 FileSaver.js https://github.com/eligrey/FileSaver.js/
于 2013-12-20T02:00:27.233 回答
0
由于 Javascript 没有文件 I/O,因此用户下载起来并不容易。然而,这种工作非常适合一个简单的 PHP 脚本,它可以生成您的 XSLX 并动态保存到您的服务器。
于 2010-05-18T02:21:49.990 回答
0
**Yes You Can do it using javascript**
** call function expexcel('table_id','output_file_name');**
<script>
function expexcel(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();
}
}
</script>
于 2020-04-16T05:34:09.547 回答