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

网站算信息化建设杭州网络推广

网站算信息化建设,杭州网络推广,专业网站建设专家,网址大全123下载安装xlsx xlsx是由SheetJS开发的一个处理excel文件的npm库 适用于前端开发者实现导入导出excel文件的经典需求 为了区别于xlsx文件,突出其应用语言,该库通常又被称为js-xlsx 导出js数据为Excel文件 需要以下步骤: 安装 xlsx 库 你可以使用 …

xlsx

xlsx是由SheetJS开发的一个处理excel文件的npm库

适用于前端开发者实现导入导出excel文件的经典需求

为了区别于xlsx文件,突出其应用语言,该库通常又被称为js-xlsx

导出js数据为Excel文件

需要以下步骤:

  1. 安装 xlsx 库 你可以使用 npm 包管理器安装 xlsx 库,也可以将 xlsx 下载到本地,然后在 HTML 文件中通过 script 标签引入。
  2. 准备数据 将需要导出的数据准备好,并将其存储为一个数组或对象。
  3. 创建工作簿 通过 xlsx 库的 utils.book_new() 方法创建一个工作簿(workbook)对象,该对象包含一个或多个工作表(worksheet)。
  4. 创建工作表 通过 xlsx 库的 utils.json_to_sheet() 方法创建一个工作表,并将准备好的数据作为参数传入该方法。如果需要创建多个工作表,可以多次调用该方法,并将它们添加到工作簿对象中。
  5. 将工作表添加到工作簿 通过 xlsx 库的 utils.book_append_sheet() 方法将创建好的工作表添加到工作簿对象中。
  6. 导出数据 通过 xlsx 库的 writeFile() 方法将工作簿对象导出为 Excel 文件。你可以指定导出的文件名和文件格式,比如 .xlsx.csv

以下是一个使用 xlsx 库将数据导出为 Excel 文件的示例代码:

vue

<script setup>
import * as XLSX from "xlsx/xlsx.mjs";
const download = () => {const data = [["姓名", "年龄", "性别"],["张三", 18, "男"],["李四", 22, "女"],["王五", 25, "男"],];const workbook = XLSX.utils.book_new();const worksheet = XLSX.utils.json_to_sheet(data);XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");XLSX.writeFile(workbook, "data.xlsx");
};
</script><template><button @click="download">导出</button>
</template>

导入Excel文件生成js数据

  1. 使用input type="file"选择xlsx文件
  2. 使用fileReader读取文件为二进制编码
  3. XLSX.read方法处理二进制编码为worksheet对象
  4. XLSX.utils.sheet_to_json转换worksheet对象为json数据,实际上就是js数组
  5. 最后处理数组数据为自己想要的格式即可
<template><article><p>导入高德地图xlsx文件</p><input type="file" ref="upload" accept=".xls,.xlsx" /></article>
</template><script>
import XLSX from "xlsx"
export default {mounted() {// 监听表格导入事件this.$refs.upload.addEventListener("change", e => {this.readExcel(e)})},methods: {readExcel(e) {//表格导入const files = e.target.files//如果没有文件名,不往下执行if (files.length <= 0) return// 上传文件格式不正确,非xls或者xlsx格式文件,不往下执行if (!/\.(xls|xlsx)$/.test(files[0].name.toLowerCase())) returnconst fileReader = new FileReader()// readAsBinaryString将文件读取为二进制编码fileReader.readAsBinaryString(files[0])// 读取完成fileReader.onload = ev => {try {// 二进制数据const data = ev.target.result// xlsx处理二进制数据const workbook = XLSX.read(data, {type: "binary"})//取第一张表const wsname = workbook.SheetNames[0] // 根据表格内容生成json数据const ws = XLSX.utils.sheet_to_json(workbook.Sheets[wsname]) const outputs = [] //清空接收数据for (let i = 0; i < ws.length; i++) {const sheetData = {value: ws[i].adcode,label: ws[i].中文名}outputs.push(sheetData)}} catch (e) {console.log(e)}}}}
}
</script>

xlsx-js-style库使用

xlsx基础库不提供样式设置,可以使用xlsx-js-style库,这个库是xlsx库的fork版本,并添加了样式定义

详细样式可以查看https://github.com/gitbrent/xlsx-js-style/

可以调节背景色、字体样式、border

npm i -s xlsx-js-style
<script setup>
import XLSX from "xlsx-js-style";
console.log();
const download = () => {const wb = XLSX.utils.book_new();const ws = XLSX.utils.aoa_to_sheet([["Hello", "World"],[1, 2],]);// 在单元格对象中添加 `s` 属性来设置该单元格的样式ws["A1"].s = {font: { bold: true },alignment: { horizontal: "center" },fill: { fgColor: { rgb: "FFFF0000" } },};ws["B2"].s = {alignment: { horizontal: "center" },font: { bold: true },fill: { fgColor: { rgb: "FFFF0000" } },};XLSX.utils.book_append_sheet(wb, ws, "Sheet1");XLSX.writeFile(wb, "example.xlsx");
};
</script>

去掉标题头

XLSX.utils.json_to_sheet默认使用Object.keys生成头部

所以如下数据格式不加上skipHeader: true,会出现0 1 2的索引头部

<script setup>
import XLSX from "xlsx-js-style";
const download = () => {const data = [["姓名", "年龄", "性别"],["张三", 18, "男"],["李四", 22, "女"],["王五", 25, "男"],];const wb = XLSX.utils.book_new();const ws = XLSX.utils.json_to_sheet(data, {skipHeader: true,});XLSX.utils.book_append_sheet(wb, ws, "Sheet1");XLSX.writeFile(wb, "example.xlsx");
};
</script><template><button @click="download">导出</button>
</template>

设置列宽

<script setup>
import XLSX from "xlsx-js-style";
const download = () => {const data = [{ 姓名: "张三", 年龄: 18, 性别: "男" },{ 姓名: "李四", 年龄: 20, 性别: "女" },{ 姓名: "王五", 年龄: 22, 性别: "男" },];const wb = XLSX.utils.book_new();const ws = XLSX.utils.json_to_sheet(data);ws["!cols"] = [{wpx: 150,},{wpx: 500,},{wpx: 100,},];XLSX.utils.book_append_sheet(wb, ws, "Sheet1");XLSX.writeFile(wb, "example.xlsx");
};
</script><template><button @click="download">导出</button>
</template>

合并单元格

<script setup>
import XLSX from "xlsx-js-style";
const download = () => {const data = [{ 姓名: "张三", 年龄: 18, 性别: "男" },{ 姓名: "李四", 年龄: 20, 性别: "女" },{ 姓名: "王五", 年龄: 22, 性别: "男" },];const wb = XLSX.utils.book_new();const ws = XLSX.utils.json_to_sheet(data);// s 表示要合并的单元格范围的左上角单元格,r 表示该单元格的行号,c 表示该单元格的列号,行列号从 0 开始计数。所以 { r: 0, c: 0 } 表示第 1 行第 1 列的单元格,即 A1 单元格。// e 表示要合并的单元格范围的右下角单元格,其含义与 s 相同。所以 { r: 0, c: 1 } 表示第 1 行第 2 列的单元格,即 B1 单元格。// 因此,{ s: { r: 0, c: 0 }, e: { r: 0, c: 1 } } 表示要合并第 1 行第 1 列和第 1 行第 3 列之间的元格。// 注意,合并会以开始位置单元格中的内容为准,所以合并后的单元格中的内容为 A1 单元格中的内容。ws["!merges"] = [{ s: { r: 0, c: 0 }, e: { r: 0, c: 2 } }];XLSX.utils.book_append_sheet(wb, ws, "Sheet1");XLSX.writeFile(wb, "example.xlsx");
};
</script><template><button @click="download">导出</button>
</template>
http://www.yidumall.com/news/71831.html

相关文章:

  • 免费申请企业网站沈阳网站关键词优化多少钱
  • 福建网站制作常州网站推广
  • wordpress主题404页面谈谈对seo的理解
  • 旅游网站首页设计大概图网络营销典型案例
  • 上海大型网站模板建站难吗
  • wordpress 注册审核上海牛巨微seo关键词优化
  • 建设官方网站意义互联网营销专家
  • 新手怎么做详情页seo搜外
  • 本科生做旅游网站客服注册网站查询
  • 陕西省建筑信息平台如何优化seo
  • 公司网站设计怎么做互联网营销师培训机构
  • 建筑工程网上办事大厅登录seo是什么地方
  • 专门做恐怖片的网站新浪博客
  • 哪里有男男做受网站深圳网站优化公司
  • 网站怎么做留言板泉州全网推广
  • 网站文件夹命名seo腾讯广告投放推广平台
  • php在网站后台建设中的优势电商怎么推广自己的产品
  • 重庆市建设项目环境影响评价网站新闻网最新消息
  • 平度网站建设公司做广告的怎么找客户
  • 外贸商城网站 定制百度资源
  • 辉玲建设集团有限公司网站网络平台怎么推广
  • 杭州网站推广怎样做佛山网站营销推广
  • 评测网站做的那些条形图seo优化技巧有哪些
  • wordpress 上传http错误seo优化是啥
  • 搭建公司网站费用青岛seo搜索优化
  • 个人养老保险怎么买安卓优化大师旧版本
  • 做网站建设月收入多少在线咨询 1 网站宣传
  • 做网站怎样做深圳新闻最新事件
  • 电视台网站建设方案.doc中国国家培训网
  • 怎么用服务器做网站中国50强企业管理培训机构