当前位置: 首页 > news >正文

Vue常用Excel导出工具SheetJS

SheetJS(也称为 xlsx 库),这是一个非常强大的 JavaScript 库,用于读取和写入各种电子表格格式(如 Excel 文件)。它支持多种文件格式,包括 .xlsx.xls.csv 等。

官网地址:概述 | SheetJS 中文网


1. 什么是SheetJS?

定义

SheetJS 是一个开源的 JavaScript 库,用于处理电子表格文件。它提供了读取、写入和操作电子表格的功能,支持多种文件格式。SheetJS 的核心是 xlsx 库,它可以在浏览器和 Node.js 环境中使用。

特点

  • 支持多种文件格式:包括 .xlsx.xls.csv.ods 等。

  • 跨平台:可以在浏览器和 Node.js 中使用。

  • 功能强大:支持读取、写入、修改电子表格,以及复杂的单元格操作(如样式、公式等)。


2. 安装SheetJS

在浏览器中使用

你可以通过 CDN 引入 xlsx 库(可以直接放到index.html的head标签中):

<script src="https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js"></script>

在 Node.js 中使用

如果你使用的是 Node.js,可以通过 npm 安装:

npm install xlsx

3. 基本使用方法

3.1 读取Excel文件

示例:读取 .xlsx 文件
const XLSX = require('xlsx');

// 读取文件
const workbook = XLSX.readFile('example.xlsx');

// 获取第一个工作表的名称
const sheetName = workbook.SheetNames[0];

// 获取工作表
const worksheet = workbook.Sheets[sheetName];

// 将工作表转换为JSON
const data = XLSX.utils.sheet_to_json(worksheet);

console.log(data);

3.2 写入Excel文件

示例:创建一个新的 .xlsx 文件
const XLSX = require('xlsx');

// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();

// 创建一个工作表的数据
const data = [
    ['Name', 'Age', 'Occupation'],
    ['Alice', 25, 'Engineer'],
    ['Bob', 30, 'Designer'],
    ['Charlie', 35, 'Manager']
];

// 将数据转换为工作表
const worksheet = XLSX.utils.aoa_to_sheet(data);

// 将工作表添加到工作簿
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

// 保存工作簿到文件
XLSX.writeFile(workbook, 'output.xlsx');

4. 高级功能

4.1 设置单元格样式

SheetJS 支持设置单元格的样式,如字体、背景颜色、边框等。

示例:设置单元格样式
const XLSX = require('xlsx');

// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();

// 创建一个工作表的数据
const data = [
    ['Name', 'Age', 'Occupation'],
    ['Alice', 25, 'Engineer'],
    ['Bob', 30, 'Designer'],
    ['Charlie', 35, 'Manager']
];

// 将数据转换为工作表
const worksheet = XLSX.utils.aoa_to_sheet(data);

// 设置第一行的样式
const firstRow = 1; // 第一行的行号(从1开始)
const lastCol = XLSX.utils.decode_col(XLSX.utils.encode_col(data[0].length - 1)); // 最后一列的列号

// 遍历第一行的每个单元格并设置样式
for (let col = 1; col <= lastCol; col++) {
    const cellAddress = { r: firstRow, c: col }; // 单元格地址
    const cellRef = XLSX.utils.encode_cell(cellAddress); // 单元格引用(如A1)
    const cell = worksheet[cellRef]; // 获取单元格对象

    if (cell) {
        cell.s = { // 设置单元格样式
            fill: { // 设置背景颜色
                fgColor: { rgb: '000000' } // 深色背景
            },
            font: { // 设置字体样式
                color: { rgb: 'FFFFFF' }, // 白色字体
                bold: true // 加粗
            }
        };
    }
}

// 将工作表添加到工作簿
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

// 保存工作簿到文件
XLSX.writeFile(workbook, 'styled_output.xlsx');

4.2 处理公式

SheetJS 支持读取和写入单元格公式。

示例:处理公式
const XLSX = require('xlsx');

// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();

// 创建一个工作表的数据
const data = [
    ['A', 'B', 'C'],
    [1, 2, '=A2+B2']
];

// 将数据转换为工作表
const worksheet = XLSX.utils.aoa_to_sheet(data);

// 将工作表添加到工作簿
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

// 保存工作簿到文件
XLSX.writeFile(workbook, 'formula_output.xlsx');

5. 总结

  • SheetJS是什么:一个用于处理电子表格文件的JavaScript库,支持多种文件格式。

  • 特点:支持多种文件格式,功能强大,跨平台。

  • 基本使用:读取和写入电子表格文件,操作单元格。

  • 高级功能:设置单元格样式,处理公式。

  • 原理:通过解析器将文件内容转换为JavaScript对象,方便操作。

相关文章:

  • 配置Spring Boot中的Jackson序列化
  • python实战项目58:采集蜻蜓FM热门音频top排行榜
  • DeepSeek后训练:监督微调和强化学习
  • WebGL 渲染器 WebGLRenderer
  • 从0-1学习Mysql第九章: 分区与分库分表
  • 【网络安全 | 漏洞挖掘】利用文件上传功能的 IDOR 和 XSS 劫持会话
  • React(12)案例前期准备
  • PyQT6是干啥的?
  • 2.数据结构:1.Tire 字符串统计
  • PDF文档中表格以及形状解析
  • Electron一小时快速上手
  • 【Swift 算法实战】城市天际线问题解法
  • 231.跳跃游戏
  • 蓝桥杯备考:DFS剪枝之数的划分
  • React 组件基础介绍
  • 新一代跨境电商ERP系统:从订单到发货的全流程自动化管理
  • Git GitHub基础
  • Web Worker 使用教程
  • 执行yum -y install npt 报错解决
  • linux ununtu通过nginx-1.6.2.tar.gz安装nginx并安装在自定义目录XXX下 的步骤
  • 手表网站模板/sem什么意思
  • 一个小网站一般多少钱/百度热搜榜
  • 基于vue.js旅游网站开发/廊坊百度关键词优化怎么做
  • 网站建设_网站设计 app制作/全媒体运营师报考条件
  • 加强网站队伍建设/seo在线优化排名
  • 武安企业做网站推广/北京百度搜索优化