xlsx插件简介

news2024/11/27 2:19:25
  • 1. xlsx插件
    • 1.1. 常用属性和方法
      • 1.1.1. 创建新的工作簿
      • 1.1.2. 从数组生成工作表
      • 1.1.3. 添加工作表到工作簿
      • 1.1.4. 从HTML表格创建工作表
      • 1.1.5. 读取Excel文件
      • 1.1.6. 导出Excel文件
      • 1.1.7. 设置单元格样式
  • 2. vue中如何使用xlsx
    • 2.1. vue-xlsx的特点
    • 2.2. 常用属性和方法
      • 2.2.1. 安装 vue-xlsx
      • 2.2.2. 导入 vue-xlsx
      • 2.2.3. 读取Excel文件
      • 2.2.4. 导出Excel文件

1. xlsx插件

xlsx插件(通常指的是SheetJS/js-xlsx)是一个强大的JavaScript库,它允许你在浏览器或Node.js环境中读取、创建、编辑和导出Excel文件(.xls, .xlsx, .csv, .ods等多种格式)。

这个库是纯JavaScript编写的,不依赖于任何外部库,非常适合在前端应用中处理Excel数据,也适用于服务器端处理。

1.1. 常用属性和方法

以下是xlsx插件中一些核心的属性和方法及其使用示例:

1.1.1. 创建新的工作簿
var XLSX = require('xlsx');
var workbook = XLSX.utils.book_new();

这段代码会创建一个新的Excel工作簿对象。

1.1.2. 从数组生成工作表
var ws_data = [
  ["姓名", "年龄", "城市"],
  ["张三", 28, "北京"],
  ["李四", 32, "上海"]
];
var ws = XLSX.utils.aoa_to_sheet(ws_data);

aoa_to_sheet方法将二维数组(Array of Arrays)转换为工作表对象。

1.1.3. 添加工作表到工作簿
XLSX.utils.book_append_sheet(workbook, ws, "Sheet1");

这里将之前创建的工作表ws添加到工作簿中,并命名为"Sheet1"。

1.1.4. 从HTML表格创建工作表

假设你有一个DOM元素引用一个HTML表格:

var table = document.getElementById('myTable');
var ws = XLSX.utils.table_to_sheet(table);

这段代码会把指定的HTML表格转换为工作表对象。

1.1.5. 读取Excel文件

在浏览器环境下,可以通过FileReader读取文件内容,然后使用read方法:

var reader = new FileReader();
reader.onload = function(e) {
  var data = e.target.result;
  var workbook = XLSX.read(data, {type: 'binary'});
  // 处理工作簿...
};
reader.readAsBinaryString(file);

这里file是你通过文件输入控件获取到的文件对象。

1.1.6. 导出Excel文件

你可以将工作簿转换为Blob对象,然后下载:

var wbout = XLSX.write(workbook, {bookType:'xlsx', bookSST:true, type: 'binary'});
saveAs(new Blob([s2ab(wbout)], {type:"application/octet-stream"}), "example.xlsx");
// 注意:s2ab是一个辅助函数,用于将字符串转换为ArrayBuffer
function s2ab(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;
}

上述代码展示了如何将工作簿对象转换并下载为一个名为"example.xlsx"的Excel文件。

1.1.7. 设置单元格样式

虽然xlsx的核心库主要关注数据处理,但其扩展库xlsx-style可以用来设置单元格样式,例如字体、颜色等。不过需要注意的是,样式功能可能在最新的SheetJS版本中有所变化,推荐查阅最新的文档。

这些只是xlsx库的基础用法,实际上它提供了更多高级功能,包括处理公式、图表、样式等。为了获取更详细的使用方法和最新特性,建议直接参考SheetJS/js-xlsx的官方GitHub仓库和文档。

更多详细内容,请微信搜索“前端爱好者戳我 查看

2. vue中如何使用xlsx

在Vue中,vue-xlsx是一个专门为Vue框架设计的轻量级封装库,它基于SheetJS/js-xlsx,目的是使得在Vue应用中处理Excel文件变得更加简单和直接。

尽管直接使用SheetJS/js-xlsx已经足够强大,但vue-xlsx通过提供Vue组件和更加Vue友好的API,使得集成和使用过程对Vue开发者更为友好。

2.1. vue-xlsx的特点

  • 易用性:为Vue开发者量身定制,简化了与Vue应用的集成过程。
  • 模块化:支持按需引入,仅使用你需要的功能,保持应用体积小。
  • 文档友好:提供了详尽的文档和示例,帮助开发者快速上手。

2.2. 常用属性和方法

由于具体实现细节可能随库的更新而变化,以下是一些基于SheetJS/js-xlsx的核心概念和方法在Vue中的应用示例:

2.2.1. 安装 vue-xlsx

首先,你需要通过npm或yarn安装vue-xlsx库:

npm install vue-xlsx
2.2.2. 导入 vue-xlsx

在Vue组件中导入vue-xlsx

import { Xlsx } from 'vue-xlsx';
2.2.3. 读取Excel文件

使用FileReader API读取用户选择的Excel文件,并通过Xlsx提供的方法解析数据:

methods: {
  handleFileUpload(event) {
    const file = event.target.files[0];
    const reader = new FileReader();
    reader.onload = (e) => {
      const data = e.target.result;
      const workbook = Xlsx.read(data, { type: 'binary' });
      const sheetName = workbook.SheetNames[0];
      const sheetData = Xlsx.utils.sheet_to_json(workbook.Sheets[sheetName], { header: 1 });
      console.log(sheetData); // 打印解析后的数据
    };
    reader.readAsBinaryString(file);
  },
},

上面的例子中,handleFileUpload方法处理文件上传事件,读取文件内容并将其解析为JSON格式。

2.2.4. 导出Excel文件

可以使用Xlsx.utils.json_to_sheetXlsx.writeFile方法将数据导出到Excel文件:

methods: {
  exportToExcel() {
    const ws = Xlsx.utils.json_to_sheet([{ name: "John Doe", age: 30 }, { name: "Jane Doe", age: 25 }]);
    const wb = Xlsx.utils.book_new();
    Xlsx.utils.book_append_sheet(wb, ws, "Sheet1");
    Xlsx.writeFile(wb, "output.xlsx");
  },
},

这段代码会创建一个新的工作簿,向其中添加一个工作表,并导出为名为"output.xlsx"的文件。

请注意,具体的API和方法可能会随着库的更新而有所不同,因此最好参考vue-xlsx的官方文档以获取最新和最准确的信息。

此外,考虑到vue-xlsx的维护情况和更新频率,直接使用SheetJS/js-xlsx并在Vue中手动集成也是一个可行且灵活的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1875024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业级堡垒机JumpServer

文章目录 JumpServer是什么生产应用场景 Docker安装JumpServer1.Docker安装2.MySQL服务安装3.Redis服务安装4.key生成5.JumpServer安装6.登录验证 系统设置邮箱服务器用户和用户组创建系统审计员资产管理用户创建资产节点资产授权查看用户的资产监控仪表盘 命令过滤器创建命令过…

基于STM32的智能家用电力管理系统

目录 引言环境准备智能家用电力管理系统基础代码实现&#xff1a;实现智能家用电力管理系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景&#xff1a;电力管理与优化问题解决方案与优化收尾与总结 1. 引言 智能家用电力管理系统通…

EXCEL 复制后转置粘贴

nodepad 转置参考&#xff1a; https://editor.csdn.net/md/?articleId140014651 1. WPS复制后转置粘贴 复制-》右键-》顶部第一行-》粘贴行列转置&#xff0c;如下图&#xff1a; 2. Excel office365 本地版 2. Excel office365 在线版

Python特征工程 — 1.1 特征二值化

目录 1 特征二值化 1.1 特征二值化简介 1.2 实验数据集 2 阈值法 2.1 scikit-learn库实现阈值法二值化 2.2 pandas实现阈值法二值化 2.3 自定义函数实现阈值法二值化 3 其他方法实现二值化 3.1 中位数法 3.2 众数法 3.3 标准差法 1 特征二值化 1.1 特征二值化简介…

国产操作系统上netstat命令详解 _ 统信 _ 麒麟 _ 中科方德

原文链接&#xff1a;国产操作系统上netstat命令详解 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在国产操作系统上使用netstat命令的详解文章。netstat是网络统计&#xff08;network statistics&#xff09;的缩写&#xff0c;它是一…

力扣每日一题 6/28 动态规划/数组

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 2742.给墙壁刷油漆【困难】 题目&#xff1a; 给你两个长度为 n 下标从 0…

Hive SQL:实现炸列(列转行)以及逆操作(行转列)

目录 列转行行转列 列转行 函数&#xff1a; EXPLODE(ARRAY)&#xff1a;将ARRAY中的每一元素转换为每一行 EXPLODE(MAP)&#xff1a;将MAP中的每个键值对转换为两行&#xff0c;其中一行数据包含键&#xff0c;另一行数据包含值 数据样例&#xff1a; 1、将每天的课程&#…

vue全局方法plugins/utils

一、在src目录下创建一个plugins文件夹 test.ts文件存放创建的方法&#xff0c;index.ts用于接收所有自定义方法进行统一处理 二、编写自定义方法 // test.ts文件 export default {handleTest(val1: number, val2: number) {// 只是一个求和的方法return val1 val2;}, };三…

hive调优原理详解:案例解析参数配置(第17天)

系列文章目录 一、Hive常问面试函数&#xff08;掌握&#xff09; 二、Hive调优如何配置&#xff08;重点&#xff09; 文章目录 系列文章目录前言一、Hive函数&#xff08;掌握&#xff09;11、JSON数据处理12、炸裂函数13、高频面试题13.1 行转列13.2 列转行 14、开窗函数&a…

一些指标的学习

1.平均倒数排名&#xff08;MRR&#xff09; 1.定义 MRR 是衡量检索系统返回的结果列表中第一个相关结果位置的指标。具体来说&#xff0c;它是所有查询倒数排名的平均值。 2.计算步骤 对每个查询&#xff0c;找到第一个正确答案在结果列表中的排名 &#x1d445;&#x1d44…

鸿蒙登录页面及页面跳转的设计

目录 任务目标任务分析任务实施1.新建工程项目HMLogin2.设计登录页面Index.visual3.设计第二个页面SecondPage4.修改Index.ets代码5.修改SecondPage.ets代码6.运行工程 任务目标 设计一个简单的登录页面&#xff0c;要求可以将第一页的登录信息&#xff0c;传递到第二个页面&a…

VMware ESXi 技术

目录 一、VMware ESXi安装 1. 在VMware WorkStation中创建一台虚拟机 2. 进入VMware ESXi控制台 3. 配置VMware ESXi网络 二、使用Web网页端登录管理ESXi 1. 分配许可证密钥&#xff08;选做&#xff09; 2. 管理ESXi 三、VMware ESXi控制台 1. 创建虚拟机 2. 定制虚拟…

静态链表详解(C语言版)

顺序表和链表的优缺点 顺序表和链表是两种基本的线性数据结构&#xff0c;它们各自有不同的优缺点&#xff0c;适用于不同的应用场景。 顺序表&#xff08;Sequential List&#xff0c;通常指数组&#xff09; 优点&#xff1a; 随机访问&#xff1a;可以通过索引快速访问任…

【Linux】服务器被work32病毒入侵CPU占用99%

文章目录 一、问题发现二、问题解决2.1 清楚病毒2.2 开启防火墙2.3 修改SSH端口2.4 仅使用凭据登录&#xff08;可选&#xff09; 一、问题发现 我的一台海外服务器&#xff0c;一直只运行一项服务&#xff08;你懂的&#xff09;&#xff0c;但是前不久我发现CPU占用99%。没在…

R语言学习笔记1-介绍与安装

R语言学习笔记1-介绍与安装 简介应用领域R语言优势安装步骤&#xff08;linux版本&#xff09;在R脚本中绘制简单的条形图示例 简介 R语言是一种非常强大和流行的据分析和统计建模工具。它是一种开源的编程语言和环境&#xff0c;专门设计用于数据处理、统计分析和可视化。 应…

DP(动态规划)【2】 最大连续子列和 最长不降子序列

1.最大连续子列和 #include <iostream> #include <vector> #include <cmath> #include <string> #include <cstring> #include <queue> using namespace std; const int N10002,maxn10;int n,m,k,f[N]{0},dp[N]{0};int main() {scanf(&quo…

JavaParser抽取测试用例对应的被测方法

背景介绍 博主目前要做的工作需要将一个java项目的所有RD手写的测试用例和被测方法对应起来&#xff0c;最后将得到的结果存入一个json文件。 本教程以项目GitHub - binance/binance-connector-java 为例。 结果展示 最终会得到一个 funcTestMap.json&#xff0c;里面存放着…

深度学习实验第T2周:彩色图片分类

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/0dvHCaOoFnW8SCp3JpzKxg) 中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊](https://mtyjkh.blog.csdn.net/)** 目录 一、前言 目标 二、我的环境&#…

煤安防爆手机在煤矿井下使用时需要符合什么标准

煤安防爆手机在煤矿井下使用时&#xff0c;需符合严格的防爆安全标准&#xff0c;如煤安MA防爆合格证&#xff0c;以确保在易燃易爆环境中安全无虞。同时&#xff0c;手机还需具备防尘防水、抗冲击等环境适应性要求&#xff0c;以及优异的通信性能&#xff0c;以满足煤矿工作的…

python 获取遮挡窗口界面并操作窗口

有时候我们需要程序自动化帮我们处理一些事情,这时候我们会想到使用按键精灵等一些可以模拟人工操作的软件代替我们劳动,但是,这种操作有个前提就是需要将操作界面置于最顶层,这样就会影响我们做其他事情,这时我们就不希望操作界面置于最外层,影响我们做其他操作。 今天…