如何使用JavaScript创建Excel文件?

fzwojiic  于 11个月前  发布在  Java
关注(0)|答案(3)|浏览(151)

我想知道是否有可能创建一个Excel文件,并使其从网页上下载与JavaScript?
目前,我成功地创建了一个.csv文件,并使用以下代码下载:

var blob = new Blob([csvText], { type: 'text/csv;charset=UFT-8;' });
var link = document.createElement("a");
if (link.download !== undefined) { // feature detection
    // Browsers that support HTML5 download attribute
    var url = URL.createObjectURL(blob);
    link.setAttribute("href", url);
    link.setAttribute("download", "file.csv");
    link.style.visibility = 'hidden';
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
}

字符串
我想知道是否有任何JavaScript库允许将文件从csv格式转换为xlsx,并使其下载方式与csv相同?
最后的目标是在下载的xlsx中设置一个模板。

cidc1ykv

cidc1ykv1#

有两个选项https://github.com/stephenliberty/excel-builder.js
另一个Excel选项较少但不太担心Excel兼容性问题的github项目可以在这里找到:https://github.com/jmaister/excellentexport

cigdeys3

cigdeys32#

是的,你可以使用sheetJS来创建xlsx文件,使用下面的java脚本代码

var ns = XLSX.utils.book_new();
      ns.props = {
        title: "new excell sheet",
        subject: "test",
        Ather: "Shan",
        createdDate: Date.now(),
      };
      ns.SheetNames.push("Test");
      var nb_data = [["hello", "shan"]];
      var nb = XLSX.utils.aoa_to_sheet(nb_data);
      ns.Sheets["Test"] = nb;

      var nbOut = XLSX.write(ns, { bookType: "xlsx", type: "binary" });

字符串
要保存文件,请使用以下函数作为传递nbOut变量所需的参数

function saveBook(s) {
        var buf = new ArrayBuffer(s.length);
        var view = new Uint8Array(buf);
        for (var i = 0; i < s.length; i++) {
          view[i] = s.charCodeAt(i) & 0xff;
        }
        return buf;
      }

      $("#create_sheet").click(function () {
        saveAs(
          new Blob([saveBook(nbOut)], { type: "application/octet-stream" }),
          "test.xlsx"
        );
      });


你可以从here找到图纸库!
你可以从here找到FileSaver.js库!

r9f1avp5

r9f1avp53#

我发现了两个有用的JavaScript库,可以使用JavaScript创建xls文件
一款简单轻便的
https://github.com/egeriis/zipcelx
更有特色的图书馆
https://github.com/SheetJS/sheetjs

相关问题