标签: sheetjs

使用 SheetJS 将 JSON 对象数组导出到 Excel

我有一个 JSON 对象数组,如下所示:

[
  {"name":"John", "city": "Seattle"},
  {"name":"Mike", "city": "Los Angeles"},
  {"name":"Zach", "city": "New York"}
]
Run Code Online (Sandbox Code Playgroud)

当我使用下面的代码时,它不起作用:

     _export: function(records,opts) {
                    var XLSX = xlsx;
                    var fileName = opts.split(".")[2]
                    var workSheet = XLSX.utils.json_to_sheet(records);
                    console.log("THis is Worksheet",workSheet);
                    var wb = XLSX.utils.book_new();
                    console.log("THis is workbook",wb)
                    XLSX.utils.book_append_sheet(wb, workSheet, fileName);
                    
                    var bin = XLSX.write(wb, {bookType:'xlsx',type: "binary"});
                    return new Blob([this._binStr2ArrBuff(bin)], { type: "" });
                },
            },
Run Code Online (Sandbox Code Playgroud)

我正在使用 SheetJS 版本 0.9.11,只是想检查是否有任何方法可以将其导出为 Excel 格式?最近两天我被困在这里了。任何帮助将不胜感激。

javascript excel vue.js sheetjs

5
推荐指数
1
解决办法
2万
查看次数

将 HTML 表格导出到 Excel 并设置格式

我正在创建一个网页,其中的数据上传到 HTML 表。经过一些计算后,会生成一个输出 HTML 表。输出 HTML 表必须以 Excel ( .xlsx) 格式转储。我使用SheetJS库来上传和下载。

我尝试过以下代码,将数据导出到 Excel,无需任何格式。

HTML 表格标记

计算后输出HTML:

<table border="1" id="tempTable">
  <thead>
    <tr>
      <th style="border:1px solid #000000;border-collapse: collapse">Column1</th>
      <th style="border:1px solid #000000;border-collapse: collapse">Column2</th>
      <th style="border:1px solid #000000;border-collapse: collapse">Column3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="border:1px solid #000000;border-collapse: collapse">R1C1</td>
      <td style="border:1px solid #000000;border-collapse: collapse">R1C2</td>
      <td style="border:1px solid #000000;border-collapse: collapse">R1C3</td>
    </tr>
    <tr>
      <td style="border:1px solid #000000;border-collapse: collapse">R2C1</td>
      <td style="border:1px solid #000000;border-collapse: collapse">R2C2</td>
      <td style="border:1px solid #000000;border-collapse: collapse">R2C3</td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

JavaScript 代码 …

javascript excel html-table sheetjs

5
推荐指数
1
解决办法
2万
查看次数

使用 SheetJS 将动态创建的表格内容保存在 Excel 文件中

我动态地将行添加到 html 表中,并且想使用 SheetJs 将表内容保存到 xlsx 文件中。生成的文件是空的。当以这种方式添加表格内容时,是否可以在这种情况下做到这一点?我还尝试在创建 xlsx 文件之前添加行。

<!DOCTYPE html>
<html>

<head>
    <script src="https://code.jquery.com/jquery-2.1.4.js"
        integrity="sha256-siFczlgw4jULnUICcdm9gjQPZkw/YPDqhQ9+nAOScE4=" crossorigin="anonymous"></script>
    <script type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/amcharts/3.21.15/plugins/export/libs/FileSaver.js/FileSaver.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.15.6/xlsx.full.min.js"></script>

    <style>
        table,
        td {
            border: 1px solid black;
        }
    </style>
</head>

<body>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.10.3/xlsx.full.min.js">
    </script>

    <p>Click the button to add a new row at the first position of the
        table and then add cells and content</p>

    <table id="myTable">
        <TR>
        </TR>
    </table>
    <button type="button" id="first" onclick="First('myTable')">Principal</button>
    <button id="button-a">Create Excel</button>
    <script>
        function First(tableID) {
            let table = document.getElementById(tableID)
            table.innerHTML …
Run Code Online (Sandbox Code Playgroud)

html javascript ajax jquery sheetjs

5
推荐指数
1
解决办法
1199
查看次数

SheetJS如何格式化列

我有一个使用SheetJS编写 excel 文件的 Vue 项目

如何在生成的 excel 文件中设置列的格式?

我需要将 SalesOrderDate、CustomerRequestedDeliveryDate、ConfirmedDate 和 _ProductionDate 设置为日期格式。

generateExcel() {
    axios.get('generateExcel?format=json', {
        params: {
            division: this.auth.user.current_division,
            area: this.form.area,
            month: this.form.month
        }
    })
    .then(response => {
            let structArray = []
            for (let [index, value] of response.data.entries()) {
                structArray.push({
                    SalesOrderNumber: value.so_id,
                    SalesOrderDate: (value.so_date.trim().length ? moment(value.so_date, 'MMMM, DD YYYY HH:mm:ss', true).format('MM/DD/YYYY'): ''),
                    ShipmentStatus: value.shipment_status,
                    Remarks: value.remarks,
                    ID: value.id,
                    ModelName: value.model_name,
                    ModelNumber: value.model_id,
                    Qty: value.qty,
                    CustomerRequestedDeliveryDate: (value.requested_delivery_date.trim().length ? moment(value.requested_delivery_date, 'MMMM, DD YYYY HH:mm:ss', true).format('MM/DD/YYYY'): ''),
                    ConfirmedDate: …
Run Code Online (Sandbox Code Playgroud)

javascript excel vue.js sheetjs

4
推荐指数
2
解决办法
7658
查看次数

SheetJS,修复记录:/xl/workbook.xml 部分(工作簿)中的工作表属性

我使用SheetJS将数据导出到excel,看起来像excel本身修复数据。数据下载良好,但是收到此警告可以吗?我从 UI 中获取了 file.xlsx,当我通过 Excel 打开它时,我收到了一些由 Excel 本身生成的警告。 截图_5 截图_4

代码:

const download = (url, name) => {
    let a = document.createElement('a')
    a.href = url
    a.download = name
    a.click()

    window.URL.revokeObjectURL(url)
}

function Workbook() {
    if (!(this instanceof Workbook))
        return new Workbook()

    this.SheetNames = []

    this.Sheets = {}
}

function s2ab(s) {
    const buf = new ArrayBuffer(s.length)

    const view = new Uint8Array(buf)

    for (let i=0; i !== s.length; ++i)
        view[i] = s.charCodeAt(i) & 0xFF

    return view
}

export default data => …
Run Code Online (Sandbox Code Playgroud)

javascript excel spreadsheet ecmascript-6 sheetjs

4
推荐指数
1
解决办法
7295
查看次数

Angular-SheetJS-如何将HTML表格导出到Excel?

我从此“教程”中复制了代码:

https://sheetjs.com/demos/table.html

function doit(type, fn, dl) {
   var elt = document.getElementById('data-table');
   var wb = XLSX.utils.table_to_book(elt, {sheet:"Sheet JS"});
   return dl ?
    XLSX.write(wb, {bookType:type, bookSST:true, type: 'base64'}) :
    XLSX.writeFile(wb, fn || ('test.' + (type || 'xlsx')));
}
Run Code Online (Sandbox Code Playgroud)

因此,我最终在Angular中创建了此方法:

exportTableToExcel() {
   var type = "xlsx"
   var elt = document.getElementsByClassName('table');
   var wb = XLSX.utils.table_to_book(elt, /*{sheet:"Sheet JS"}*/);
   return XLSX.writeFile(wb, undefined || ('test.' + (type || 'xlsx')));
}
Run Code Online (Sandbox Code Playgroud)

好吧,在table_to_book方法的那一行,我收到了这个异常:

table.getElementsByTagName不是函数

我也尝试过本教程,该教程与之相似,但适用于Angular 4,而不是5。

http://vinhboy.com/blog/2017/06/13/how-to-use-sheetjs-xlsx-with-angular-4-typescript-in-the-browser/

angular sheetjs

4
推荐指数
1
解决办法
5602
查看次数

SheetJs自动转换日期角度7

我在 Angular 7 中使用sheetjs。并且我从我的json 导出excel。但 Excel 将我的日期转换为 02/29/2019 格式。但是,我要发送“29.02.2019”。我以字符串形式发送,Excel 仍在转换。我还发送“29.02.2019”。通过增加 ”。” 日期结束时的字符,但它仍然转换为“02/29/2019”。。如何实现按我的格式显示?

import * as XLSX from 'xlsx';

exportExcelFromJson(jsonData): void {
    const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(jsonData);
    const wb: XLSX.WorkBook = XLSX.utils.book_new();

    XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
    XLSX.writeFile(wb, 'MyExcel.xlsx');
}
Run Code Online (Sandbox Code Playgroud)

xlsx typescript angular sheetjs angular7

4
推荐指数
1
解决办法
6468
查看次数

sheetJs - 空单元格没有输出

我正在使用sheetjs。空单元格不会填充到 json 对象(包括标题)中。如果未输入列,我也需要该信息。这是我的代码:

workbook.SheetNames.forEach((sheetName) => {
    let XL_row_object = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {defval:""});
    console.log( JSON.stringify(XL_row_object ));
}
Run Code Online (Sandbox Code Playgroud)

javascript sheetjs

4
推荐指数
1
解决办法
5518
查看次数

SheetJS js-xlsx - SheetJS 使用百分比值自动格式化我的列

我有以下 HTML 表格和 Javascript 函数,使用 SheetJS 解析表格,然后将它们导出到 Excel 文件。

var tablesToExcel = (function() {

    return function(tables, wsnames, wbname) {

        var workbook = XLSX.utils.book_new();

        for (var i = 0; i < tables.length; i++) {
            var ws1 = XLSX.utils.table_to_sheet(document.getElementById(tables[i]));
            console.log(ws1);
            XLSX.utils.book_append_sheet(workbook, ws1, wsnames[i]);
        }
        XLSX.writeFile(workbook, wbname);
    }
})();
Run Code Online (Sandbox Code Playgroud)
<table id="po-table">
  <thead class="thead-dark">
    <tr>
        <th scope="col"> Operating Unit</th>
        <th scope="col"> Rate </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Leyte</td>
      <td>90%</td>
    </tr>
  </tbody>
</table>
<table id="cert-table">
  <thead class="thead-dark">
    <tr>
        <th scope="col"> Operating Unit</th>
        <th scope="col"> Rate …
Run Code Online (Sandbox Code Playgroud)

html javascript html-table export-to-excel sheetjs

4
推荐指数
1
解决办法
2376
查看次数

用于创建格式化 XLSX 电子表格的 JS 库

我目前正在使用https://www.npmjs.com/package/xlsx在 JS 中创建通用电子表格。这可以很好地生成一个通用电子表格来显示我的数据。但是,我想添加一些功能。

https://imgur.com/a/gJE9mXg是我想要实现的一个例子。它是使用 Apache POI 创建的,仅适用于 Java。

我想要在该屏幕截图中的功能是

  1. 添加图片的能力(在左上角显示为徽标)
  2. 能够更改字体颜色(如中心的标题所示)
  3. 能够居中对齐文本(如中心的子标题所示)
  4. 使字段可排序的能力(如每列的箭头按钮所示)

似乎 SheetJS 可以通过他们的高级版本提供一些这样的功能。https://dzone.com/articles/5-popular-standalone-javascript-spreadhsheet-libra是我研究过的其他库的列表。然而,该列表似乎更像是用原生 JS 对象模拟电子表格,而不是创建 .xlsx 文件。此外,它们中的大多数都需要付费许可证。

有人有使用免费 JS 解决方案创建我的 4 个需求的经验吗?顺便说一句,我正在 Meteor JS 上构建。

如果没有,是否还有其他解决方法来实现这一目标?即让应用程序只输出一个 .csv,然后创建一个通用的 excel“模板”文件,该文件将使用 csv 进行所有格式化?或者,委托其他程序/脚本生成 XLSX 并下载输出文件。

谢谢

javascript excel xlsx meteor sheetjs

3
推荐指数
1
解决办法
3582
查看次数