我正在尝试使用 SheetJS 将一些 js 数组推送到 Excel。我查看了一些教程并使用 SheetJS 的源代码作为初始测试。我已经调试过了,除了 saveAs() 方法之外,一切似乎都运行良好。有没有其他人有同样的问题?
以下是我在 HTML 中使用的链接:
<link href="Style.css" type="text/css" rel="stylesheet">
<script src="scripts.js"></script>
<script src="data.js"></script>
<script src="xlsx.full.min.js"></script>
<script src="Blob.js"></script>
<script src="FileSaver.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery-3.1.0.min.js"%3E%3C/script%3E'))</script>
这是我保存xls文件的js方法。
function exportToExcel()
{
var wb = XLSX.utils.book_new();
wb.Props = {
Title: "SheetJS Tutorial",
Subject: "Test",
Author: "Red Stapler",
CreatedDate: new Date(2017,12,19)
};
wb.SheetNames.push("Test Sheet");
var ws_data = [['hello' , 'world']]; //a row with 2 columns
var ws = XLSX.utils.aoa_to_sheet(ws_data);
wb.Sheets["Test Sheet"] = ws;
//Exporting the Workbook for Downloading
var wbout = XLSX.write(wb, {bookType:'xlsx', type: 'binary'});
//Convert to binary Data
function s2ab(s) {
var buf = new ArrayBuffer(s.length); //convert s to arrayBuffer
var view = new Uint8Array(buf); //create uint8array as viewer
for (var i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF; //convert to octet
return buf;
}
saveExcel();
}
function saveExcel()
{
//$("#toExcel").click(function(){
//var FileSaver = require('file-saver');
var filename = $("#input-fileName").val();
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), filename + '.xlsx');
alert('saved');
}
这是我想要实现的目标,但由于某种原因我无法保存文件: https ://www.youtube.com/watch?v=41rOAt-zCu4
它是否与我的链接 JQuery 的版本与 fileSaver 结合使用有关?在视频中他们正在谈论 FileSaver.min.js ......但我只能找到 FileSaver.JS。