探索前端世界的无限可能:玩转Excel文件

news2025/1/11 16:43:36

🌟 前言

欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍

  • 🤖 洛可可白:个人主页

  • 🔥 个人专栏:✅前端技术 ✅后端技术

  • 🏠 个人博客:洛可可白博客

  • 🐱 代码获取:bestwishes0203

  • 📷 封面壁纸:洛可可白wallpaper

在这里插入图片描述

这里写自定义目录标题

  • 探索前端世界的无限可能:玩转Excel文件
    • 引言
    • 环境准备:搭建你的Vue项目舞台
      • 使用Vue CLI创建项目
      • 使用Vite创建项目
    • 导出Excel文件
    • 导入Excel文件
    • 结论

探索前端世界的无限可能:玩转Excel文件

引言

嘿,前端小伙伴们!🌟 在这个充满创意和动态变化的数字时代,我们的前端世界变得越来越丰富多彩。从炫酷的动画到复杂的数据处理,我们几乎无所不能。今天,我们要聊的是一个小小的但非常实用的技能:如何在前端轻松地与Excel文件打交道。是的,你没听错,我们可以用Vue.js和XLSX库来实现Excel文件的导入和导出,让数据处理变得更加轻松愉快。准备好了吗?让我们一起跳进这个充满可能性的前端世界,探索如何用代码玩转Excel!🚀📊📂

环境准备:搭建你的Vue项目舞台

在我们开始这场Excel操作之旅之前,我们需要搭建一个舞台——也就是我们的Vue项目。无论你是Vue CLI的忠实粉丝,还是Vite的尝鲜者,这里都有适合你的搭建方法。让我们一起来看看如何用这两种流行工具创建Vue项目,并为接下来的Excel操作做好准备。

使用Vue CLI创建项目

如果你喜欢使用Vue CLI,这是一个稳定且功能丰富的Vue项目脚手架工具。按照以下步骤创建你的Vue项目:

  1. 安装Vue CLI:如果你还没有安装Vue CLI,可以通过以下命令全局安装:

    npm install -g @vue/cli
    

    或者,如果你更喜欢使用yarn

    yarn global add @vue/cli
    
  2. 创建Vue项目:使用Vue CLI创建一个新的Vue项目。在你喜欢的工作目录下,运行以下命令:

    vue create my-vue-project
    

    按照提示选择你需要的配置,例如Babel、Router等。

  3. 安装XLSX库:项目创建完成后,进入项目目录并安装XLSX库:

    cd my-vue-project
    npm install xlsx
    

    或者,如果你使用的是yarn

    cd my-vue-project
    yarn add xlsx
    

使用Vite创建项目

Vite是一个现代化的前端构建工具,以其快速的热重载和构建性能而闻名。如果你想要一个更现代的体验,可以按照以下步骤使用Vite创建Vue项目:

  1. 安装Vite:如果你还没有安装Vite,可以通过以下命令全局安装:

    npm install -g vite
    

    或者,如果你更喜欢使用yarn

    yarn global add vite
    
  2. 创建Vue项目:现在,我们可以用Vite来创建一个新的Vue项目。在你喜欢的工作目录下,运行以下命令:

    vite create my-vue-project --template vue
    

    这将会创建一个名为my-vue-project的新项目,并使用Vue模板。

  3. 安装XLSX库:创建项目后,我们需要进入项目目录并安装XLSX库:

    cd my-vue-project
    npm install xlsx
    

    或者,如果你使用的是yarn

    cd my-vue-project
    yarn add xlsx
    

现在,无论你选择Vue CLI还是Vite,你的Vue项目都已经准备好了,XLSX库也安装完毕。我们可以开始编写代码,实现Excel文件的导入和导出功能了。让我们继续前进,探索更多前端的奇妙之处吧!🎉🛠️📁

导出Excel文件

在Vue组件中,我们可以使用XLSX库来导出数据到Excel文件。以下是具体的实现步骤和代码示例。

  1. 准备数据:首先,我们需要准备要导出的数据。在这个例子中,我们使用Vue的ref来定义一个响应式数据数组。

  2. 创建工作表:使用XLSX库的json_to_sheet方法将JSON数据转换为工作表。

  3. 创建工作簿并添加工作表:创建一个新的工作簿,并使用book_append_sheet方法将工作表添加到工作簿中。

  4. 导出文件:最后,使用writeFile方法将工作簿导出为Excel文件。

以下是具体的代码实现:

<template>
  <div>
    <button @click="exportToExcel">Export to Excel</button>
  </div>
</template>

<script setup>
import { ref } from 'vue';
import * as XLSX from 'xlsx';

// 准备要导出的数据
const data = ref([
  { name: 'John', age: 30, city: 'New York' },
  { name: 'Mike', age: 25, city: 'Chicago' },
  { name: 'Sara', age: 28, city: 'Los Angeles' }
]);

const exportToExcel = () => {
  // 将数据转换为工作表
  const ws = XLSX.utils.json_to_sheet(data.value);
  // 创建工作簿并添加工作表
  const wb = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");

  // 导出Excel文件
  XLSX.writeFile(wb, "data.xlsx");
};
</script>

导入Excel文件

除了导出Excel文件,我们也经常需要从Excel文件中导入数据。以下是如何实现Excel文件导入的步骤和代码示例。

  1. 监听文件上传事件:在模板中添加一个文件输入元素,并监听其change事件。

  2. 读取文件内容:使用FileReader对象读取用户选择的文件内容。

  3. 解析Excel文件:使用XLSX库的read方法解析文件内容,并获取工作表。

  4. 转换为JSON:使用sheet_to_json方法将工作表转换为JSON格式,以便在Vue中使用。

以下是具体的代码实现:

<template>
  <div>
    <input type="file" @change="handleFileUpload">
  </div>
</template>

<script setup>
import * as XLSX from 'xlsx';

const 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 worksheet = workbook.Sheets[sheetName];
    const json = XLSX.utils.sheet_to_json(worksheet);
    console.log(json); // 处理或使用数据
  };
  reader.readAsBinaryString(file);
};
</script>

结论

通过上述步骤,我们可以在Vue项目中轻松实现Excel文件的导入和导出功能。XLSX库提供了强大的API,使得操作Excel文件变得简单快捷。无论是处理大量数据的导出,还是从Excel文件中导入数据,XLSX库都是一个优秀的选择。希望本文能帮助你在项目中实现Excel文件的高效处理。

如果对你有帮助,点赞👍、收藏💖、关注🔔是我更新的动力!👋🌟🚀

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

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

相关文章

本地运行打包好的dist

首先输入打包命令 每个人设置不一样 一般人 是npm run build如果不知道可以去package.json里去看。 打包好文件如下 命令行输入 :npm i -g http-server 进入到dist目录下输入 命令cmd 输入 http-server 成功

鸿蒙 DevEco Studio 设置状态栏,调用setWindowSystemBarProperties不生效

参考文章&#xff1a;设置状态栏&#xff0c;调用setWindowSystemBarProperties不生效 我使用 setWindowSystemBarProperties 设置状态栏&#xff0c;不生效。 import window from ohos.window;export default {data: {title: World},setSystemBar() {var windowClass null;…

MacOS安装软件后无法启动报错:“已损坏,无法打开,你应该将它移到废纸篓“

目录 报错截图 解决方法 知识科普 报错截图 解决方法 1. 打开系统设置->安全性与隐私->选择任何来源 2. 如果打开没有看到"任何来源"&#xff0c;如果不开启“任何来源”的选项&#xff0c;会直接影响到无法运行的第三方应用。开启“任何来源”的方法如下&a…

Linux-用户和权限

文章目录 一. 用户1. 用户分类① root用户(超级管理员)② 普通用户Ⅰ. 创建普通用户命令 ③ root用户与普通用户Ⅰ. 权限区别Ⅱ. 切换用户命令Ⅲ. sudo命令Ⅳ. 为普通用户配置sudo认证 2. 用户组① 用户,用户组② 创建用户组命令② 删除用户组命令② 用户管理命令③ getent 二.…

Flutter动画(二)内建隐式动画Widget

动画效果介绍中给出了选择动画的决策树&#xff1a; 使用动画框架不在我们讨论的话题内。flutter支持的动画包括隐式动画和显式动画。 隐式动画和显式动画 隐式动画和显示动画是两种不同的动画实现方式&#xff0c;它们的主要区别在于控制权和动画的重复性。 隐式动画&#…

【笔记2-5】ESP32:freertos消息队列

主要参考b站宸芯IOT老师的视频&#xff0c;记录自己的笔记&#xff0c;老师讲的主要是linux环境&#xff0c;但配置过程实在太多问题&#xff0c;就直接用windows环境了&#xff0c;老师也有讲一些windows的操作&#xff0c;只要代码会写&#xff0c;操作都还好&#xff0c;开发…

211高校的VMware迁移之路:迁至深信服云平台,更高效、更稳定

某211高校为国家 “双一流” 建设高校、省一流大学&#xff0c;在教育领域占据举足轻重的地位。其教学单位构成丰富多元&#xff0c;学科体系广泛而全面。然而&#xff0c;学校面临着VMware虚拟化平台维保到期、服务器老化等严峻挑战&#xff0c;严重干扰了教学、科研及管理工作…

【Matlab】将所有打开的图像批量保存为JPG格式

将Matlab中所有打开的图像批量保存为JPG格式 前言一、实现步骤1. 获取所有打开的图像句柄2. 遍历并保存图像 总结 前言 在使用Matlab进行数据分析或图像处理时&#xff0c;我们经常会生成多个图像以便观察和比较。有时&#xff0c;为了方便分享或存档&#xff0c;我们需要将这…

Linux实现地址转换和抓包

1.Linux实现地址转换 1.1 SNAT和DNAT NAT:地址转换SNAT:源地址转换DNAT:目的地址转换 内网——》外网&#xff1a;内网色的ip不能直接和公网ip通信&#xff0c;必须要把内网的地址转换成和公网ip通信的地址 外网——》内网&#xff1a;外网也不能直接和内网通信&#xff0c…

RocketMQ 过滤消息 基于tag过滤和SQL过滤

RocketMQ 过滤消息分为两种&#xff0c;一种tag过滤&#xff0c;另外一种是复杂的sql过滤。 tag过滤 首先创建producer然后启动&#xff0c;在这里创建了字符串的数组tags。字符串数组里面放置了多个字符串&#xff0c;然后去发送15条消息。 15条消息随着i的增长&#xff0c;…

[Redis#14] 持久化 | RDB | bgsave | check-rdb | 灾备

目录 0.概述 持久化的策略 1 RDB 1.1 触发机制 1.2 流程说明 1.3 RDB 的优缺点 0.概述 在学习 MySQL 数据库时&#xff0c;我们了解到事务的四个核心特性&#xff1a;原子性、一致性、持久性和隔离性。这些特性确保了数据库操作的安全性和可靠性。当我们转向 Redis 时&a…

AI大模型驱动数据分析:利用自然语言实现数据查询与可视化(1)

在当今AI驱动的时代&#xff0c;数据分析已成为各行各业不可或缺的能力。然而&#xff0c;传统的数据分析流程通常需要掌握SQL、数据处理和可视化等多项专业技能&#xff0c;这对非技术背景的业务人员来说是一个不小的挑战。 想象一下&#xff0c;当数据中心的负责人打开手机时…

Python_Flask03

这篇文章主要介绍的是数据库的增删改查操作&#xff0c;无多余好说的。 from flask import Flask from flask_sqlalchemy import SQLAlchemy from sqlalchemy import text from flask_migrate import Migrateapp Flask(__name__)# 本地基础信息的主机名 HOSTNAME "127.0…

在.NET 6中使用Serilog收集日志

此示例的完整详细信息&#xff1a;https://download.csdn.net/download/hefeng_aspnet/89998498 Serilog 是一个日志库&#xff0c;它提供对文件、控制台和其他几个地方的记录。它易于配置&#xff0c;并且具有干净且易于使用的界面。 Serilog具有无与伦比的输出目的地选择&…

【设计模式系列】备忘录模式(十九)

目录 一、什么是备忘录模式 二、备忘录模式的角色 三、备忘录模式的典型应用场景 四、备忘录模式在Calendar中的应用 一、什么是备忘录模式 备忘录模式&#xff08;Memento Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许在不暴露对象内部状态的情况下保存和恢…

网络安全技术详解:虚拟专用网络(VPN) 安全信息与事件管理(SIEM)

虚拟专用网络&#xff08;VPN&#xff09;详细介绍 虚拟专用网络&#xff08;VPN&#xff09;通过在公共网络上创建加密连接来保护数据传输的安全性和隐私性。 工作原理 VPN的工作原理涉及建立安全隧道和数据加密&#xff1a; 隧道协议&#xff1a;使用协议如PPTP、L2TP/IP…

面阵相机的使用和注意事项

引言 面阵相机&#xff08;Area Scan Camera&#xff09;是一种广泛应用于工业视觉、医学成像、安防监控以及科研领域的图像采集设备。与线扫相机不同&#xff0c;面阵相机的传感器包含多行像素&#xff08;例如1280x1024、1920x1080等&#xff09;&#xff0c;能够在一个曝光…

Android 车载虚拟化底层技术-Kernel4.19-Android10(双card)技术实现

Android Display Graphics系列文章-汇总 前言 对于Linux和Android来说&#xff0c;只要是多屏(>2)显示的场景都可以显示虚拟化。只是大部分场景对显示稳定性没有要求&#xff0c;系统异常了就都不显示了。但对于容器相关方案&#xff0c;或要求显示隔离的场景&#xff0c;是…

02 conda常用指令

目录 命令快速查找命令详细解释列出当前conda中存在的解释器环境使用指定的解释器环境创建虚拟环境激活自己创建的虚拟环境虚拟环境删除切换回主环境找到你计算机中安装的miniconda3的跟目录找到虚拟环境的目录选择需要删除的虚拟环境文件夹确认环境是否删除 补充删除虚拟环境指…

【C++】赋值运算与变量交换的深入探讨

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;赋值操作符与连续赋值&#x1f4af;常见复合赋值符及其功能&#x1f4af;位操作符中的复合赋值符&#x1f4af;题目一&#xff1a;账户余额练习题目描述代码实现运行结果分…