LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

SheetJS,一款小巧的 JavaScript 表格处理库

admin
2024年10月12日 10:41 本文热度 542

一款处理表格的 JavaScript 库 —— SheetJS。在日常开发中,会遇到处理表格数据的任务,借助 SheetJS 的能力,可以轻松实现表格的处理工作。无需深厚的编程知识,即可利用 SheetJS 轻松实现数据的导入、导出、编辑等操作,使得表格操作变得愈发轻松。

https://github.com/SheetJS/sheetjs

1. SheetJS简介

SheetJS 是一个纯粹基于 JavaScript 的表格处理库,它支持各种表格文件格式,包括Excel、CSV等。该库提供了丰富的API,能够在不需要服务器端支持的情况下,直接在浏览器中进行表格数据的操作。

2. 安装与基础用法

安装方式

CDN

<!-- use version 0.20.1 -->
<script lang="javascript" src="https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js"></script>

包管理

npm
npm i --save https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz

#
yarn
pnpm install https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz

#
pnpm
yarn add https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz

基础用法

使用 SheetJS 非常简单。你只需在 HTML 文件中引入相关的 JavaScript 文件,就能够立即开始使用。下面是一个基本的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SheetJS入门</title>
</head>
<body>
    <input type="file" id="fileInput" />
    <script lang="javascript" src="https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js"></script>
    <script>
        document.getElementById('fileInput').addEventListener('change', handleFile);
        
        function handleFile(event) {
            const file = event.target.files[0];
            if (file) {
                const reader = new FileReader();
                reader.onload = function (e) {
                    const data = new Uint8Array(e.target.result);
                    const workbook = XLSX.read(data, { type'array' });
                    // 在这里可以处理读取到的表格数据
                    console.log(workbook);
                };
                reader.readAsArrayBuffer(file);
            }
        }
    </script>
</body>
</html>

这个例子展示了如何通过SheetJS读取本地文件中的表格数据。你只需监听文件选择事件,读取文件,然后通过SheetJS提供的XLSX.read方法解析数据。

3. 导出表格文件

SheetJS 同样支持将数据导出为 Excel 或其他格式。以下是一个简单的例子:

const data = [
  ['姓名''年龄''城市'],
  ['张三'25'上海'],
  ['李四'30'北京'],
]

// 将二维数组转换为工作表对象
const ws = XLSX.utils.aoa_to_sheet(data)
// 创建一个新的工作簿对象
const wb = XLSX.utils.book_new()
// 将工作表对象添加到工作簿中,'Sheet1'为工作表的名称
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1')
// 将工作簿数据写入文件,'exported_data.xlsx'为导出文件的名称
XLSX.writeFile(wb, 'export.xlsx')

在这个例子中,我们创建了一个包含表格数据的数组,然后使用 SheetJS 提供的工具方法将数据转换成工作表对象。最后,通过XLSX.writeFile 方法将工作簿写入一个文件。

4. 高级用法

创建工作表的方式

SheetJS 提供了多种方式来创建工作表(Worksheet):

通过数组创建工作表 (aoa_to_sheet):

使用 XLSX.utils.aoa_to_sheet 方法,你可以通过一个二维数组来创建工作表。每个子数组表示一行数据。

const data = [
    ['Name''Age''Country'],
    ['John Doe'25'USA'],
    ['Jane Doe'30'Canada']
];

const ws = XLSX.utils.aoa_to_sheet(data);

通过JSON对象创建工作表 (json_to_sheet):

使用 XLSX.utils.json_to_sheet 方法,你可以通过一个包含对象的数组来创建工作表。每个对象的属性表示一列数据,数组中的每个对象表示一行数据。

const data = [
    { Name'John Doe'Age25Country'USA' },
    { Name'Jane Doe'Age30Country'Canada' }
];

const ws = XLSX.utils.json_to_sheet(data);

通过数据范围创建工作表 (table_to_sheet):

使用 XLSX.utils.table_to_sheet 方法,你可以从一个HTML表格元素中创建工作表。

const tableElement = document.getElementById('myTable');
const ws = XLSX.utils.table_to_sheet(tableElement);

通过CSV字符串创建工作表 (csv_to_sheet):

使用 XLSX.utils.csv_to_sheet 方法,你可以从一个CSV格式的字符串中创建工作表。

const csvString = 'Name,Age,Country\nJohn Doe,25,USA\nJane Doe,30,Canada';
const ws = XLSX.utils.csv_to_sheet(csvString);

工作表输出

SheetJS(XLSX)提供了丰富的方法,可以将工作表(Worksheet)转换为多种格式。以下是一些常见的工作表转换格式:

导出为Excel文件 (writeFile):

使用 XLSX.writeFile 方法,你可以将工作表保存为一个 Excel 文件,以指定的文件名下载。

const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
XLSX.writeFile(wb, 'exported_data.xlsx');

导出为二进制数据 (write):

使用 XLSX.write 方法,你可以将工作表保存为二进制数据,可以进一步处理或上传到服务器。

const wbout = XLSX.write(wb, { bookType'xlsx'type'binary' });

导出为CSV字符串 (utils.sheet_to_csv):

使用 XLSX.utils.sheet_to_csv 方法,你可以将工作表保存为CSV格式的字符串。

const csvString = XLSX.utils.sheet_to_csv(ws);

导出为HTML表格 (utils.sheet_to_html):

使用 XLSX.utils.sheet_to_html 方法,你可以将工作表保存为HTML格式的表格。

const htmlTable = XLSX.utils.sheet_to_html(ws);

这些方法提供了不同的输出格式,使得你可以根据需求选择合适的格式。无论是保存为Excel 文件、二进制数据、数据链接,还是转换为 CSV 字符串或 HTML 表格,SheetJS 都提供了便捷的方法。

5. 总结

SheetJS 是一个功能强大且易于使用的 JavaScript 表格库,适用于各种表格处理场景。本文只是简单介绍了它的一部分功能,希望能够为你提供一个入门指南。


该文章在 2024/10/12 10:41:23 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved