xlsx插件简介

  • 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.mfbz.cn/a/754853.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【操作与配置】WSL配置LINUX

WSL2&#xff08;Windows Subsystem for Linux 2&#xff09;是Microsoft开发的一项技术&#xff0c;允许用户在Windows操作系统上运行Linux发行版。WSL2是WSL&#xff08;Windows Subsystem for Linux&#xff09;的第二版&#xff0c;带来了许多改进和新特性。 官网&#xff…

论文学习:基于知识图谱的RAG进行客服问答

1.简介 文章名称&#xff1a; Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question Answering&#xff08;基于知识图谱的RAG进行客服问答&#xff09; 2.摘要ABSTRACT 在客户服务技术支持中&#xff0c;迅速准确地检索相关的过往问题对于有…

新版周易测算系统源码 去授权完美运行

已经去掉授权可以完美运行 更新了三个模板市面上都是几千几千的卖 更新了三套首页新ui 自己后台切换就行 源码大小&#xff1a;338M 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89447857 更多资源下载&#xff1a;关注我.

CSF视频文件格式转换WMV格式

如果大家看过一些高校教学讲解视频的话&#xff0c;很可能见过这样一个难得的格式&#xff0c;".csf "&#xff0c;非常漂亮 。 用暴风影音都可以打开观看&#xff0c;会自动下载解码。 但是一旦我们想要利用或者上传视频的时候就麻烦了&#xff0c;一般网站不认这…

检信智能推出我国首款Allemotion OS基于AI生理心理参数服务开发者平台

检信Allemotion OS生理心理开发者平台是根据世界人工智能高速发展的特点,为实现脑机交互的行业需求&#xff0c;由检信智能推出我国首款检信Allemotion OS生理心理开发者平台。检信Allemotion OS生理心理开发者平台集成了振动影像心理情绪20项情绪参数、11项生理相关参数&#…

springboot系列六: springboot底层机制实现 下

实现SpringBoot底层机制[Tomcat启动分析 Spring容器初始化 Tomcat如何关联Spring容器] 实现任务阶段1-创建Tomcat, 并启动&#x1f966;说明&#xff1a;创建Tomcat, 并启动&#x1f966;分析代码实现&#x1f966;完成测试 实现任务阶段2-创建Spring容器&#x1f966;说明&a…

JAVA期末速成库(10)第十一章

一、习题介绍 Check Point&#xff1a;P416 11.1&#xff0c;11.6&#xff0c;11.7&#xff0c;11.8&#xff0c;11.12&#xff0c;11.17&#xff0c;11.24 Programming Exercise&#xff1a;11.1 二、习题及答案 Check Point&#xff1a; 11.1 True or false? A subcl…

elementUI的搭建使用过程

Element - The worlds most popular Vue UI framework 上面是elementUI的网站,进入网站 点击右上角的组件按钮 复制这段代码到你的项目终端:npm i element-ui -S 加载完成后即可使用elementUI网站中的组件,使用它们只需要复制组件下面的代码即可

Qt自定义信号

1.Teacher类下定义信号signals: Student类下定义槽函数&#xff1a; Teacher.h #pragma once#include <QObject>class Teacher : public QObject {Q_OBJECTpublic:Teacher(QObject *parent);~Teacher(); signals:void Ask(); //老师向学生提问void Ask(QString str);…

第3章_UART 开发基础

文章目录 第3章 UART 开发基础3.1 同步传输与异步传输3.1.1 概念与示例3.1.2 差别 3.2 UART 协议与操作方法3.2.1 UART 协议3.2.2 STM32H5 UART 硬件结构3.2.3 RS485 协议 3.3 UART 编程3.3.1 硬件连接3.3.2 三种编程方式3.3.3 查询方式3.3.4 中断方式3.3.5 DMA 方式 3.4 效率最…

「C++系列」C++简介、应用领域

文章目录 一、C简介C 的主要特点&#xff1a;C 的学习建议&#xff1a; 二、C 应用领域三、C 有哪些优势四、C 初学案例1. Hello, World!2. 两数求和3. 判断奇偶4. 判断闰年5. 判断质数6. 求阶乘7. 斐波那契数列8. 延时程序&#xff08;简单示例&#xff09; 五、相关链接 一、…

vue组件全局注册

描述&#xff1a; vue组件的注册分为局部和全局注册两部分&#xff0c;局部注册相对容易&#xff0c;不做赘述&#xff1b;而不同框架的注册方法又有所不同&#xff0c;下面针对vite框架和vue-cli框架的注册分别进行说明 vue组件全局注册 一、vite框架中全局组件注册二、Vue-cl…

点云入门知识

点云的处理任务 场景语义分割 物体的三维表达方法&#xff08;3D representations&#xff09;&#xff1a; 点云&#xff1a;是由物体表面上许多点数据来表征这个物体。最接近原始传感器数据&#xff0c;且具有丰富的几何信息。 Mesh&#xff1a;用三角形面片和正方形面片拼…

计算机语言vs指令vs中央处理器cpu

计算机中如何表示数据 在计算机中&#xff0c;所有数据和指令都是用二进制表示的&#xff0c;即0和1。这些0和1实际上是电压信号的高低电平&#xff0c;0通常表示低电平&#xff08;如0伏特&#xff09;&#xff0c;1表示高电平&#xff08;如5伏特&#xff09;。 指令系统&a…

食品行业怎么用JSON群发短信

食品作为日常生活不可缺少的元素&#xff0c;市场需求是很稳定的&#xff0c;但是份额就那么多&#xff0c;商家都要来抢占的话&#xff0c;就需要运营推广各凭本事&#xff0c;市场运营中选择合适的推广方式&#xff0c;可以增加店铺销售额&#xff0c;很多实体店或商城都会建…

LLM应用开发-RAG系统评估与优化

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;在上一篇文章中&#xff0c;我们学习了如何基于LangChain构建RAG应用&#xff0c;并且通过Streamlit将这个RAG应用部署到了阿里云服务器&#xff1b;&am…

expandtabs()方法——tab符号转为空格

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 expandtabs()方法把字符串中的tab&#xff08;\t&#xff09;符号转为空格&#xff0c;tab&#xff08;\t&#xff09;符号默认的空格数是…

软考初级网络管理员__操作系统单选题

1.在Windows资源管理器中&#xff0c;假设已经选定文件&#xff0c;以下关于“复制”操作的叙述中&#xff0c;正确的有()。 按住Ctr键&#xff0c;拖至不同驱动器的图标上 按住AIt键&#xff0c;拖至不同驱动器的图标上 直接拖至不同驱动器的图标上 按住Shift键&#xff0…

普元EOS学习笔记-EOS8.3精简版安装

前言 普元EOS是优秀的高低开结合的企业应用软件开发框架。 普元&#xff1a;这是普元公司的名字&#xff0c;普元信息&#xff0c;上市公司哦&#xff0c;这里就不过多安利了。 EOS&#xff1a;普元公司的企业应用开发系统&#xff0c;开发语言是基于Java&#xff0c;技术框…

LLDP 基本原理

LLDP 简介 定义 LLDP&#xff08;Link Layer Discovery Protocol&#xff0c;链路层发现协议&#xff09;是 IEEE 802.1ab 中定义的第二层发现&#xff08;Layer 2 Discovery&#xff09;协议。 LLDP 提供了一种标准的链路层发现方式&#xff0c;可以将本端设备的主要能力、…