x-data-spreadsheet 是一款轻量级的 Web 电子表格组件,旨在为开发者提供一个简单、可扩展且高效的电子表格解决方案。它能够帮助开发者快速构建出类似 Excel 或 Google Sheets 的交互式表格。
与传统的表格相比,x-data-spreadsheet 提供了更丰富的功能,包括:
- 该组件的核心特点是简单易用且可定制,可以嵌入到任何 Web 应用中,并且支持与其他前端技术(如 Vue.js、React)配合使用。
组件可多实例化创建多个组件
在线文档地址
https://hondrytravis.com/x-spreadsheet-doc
使用方式
通过npm 安装
npm install x-data-spreadsheet --save
初始化
html
<template>
<!-- 高级表格-->
<div ref="spreadsheetDom"></div>
</template>
js
import Spreadsheet from "x-data-spreadsheet";
import "x-data-spreadsheet/dist/locale/zh-cn";
Spreadsheet.locale("zh-cn");
const s = new Spreadsheet(this.$refs.spreadsheetDom, {
row: {
len: 20, // 设置行数为20
height: 30, // 设置每行的高度为30px
},
col: {
len: 10, // 设置列数为10
width: 100, // 设置每列的宽度为100px
}
});
设置表格模式
const s = new Spreadsheet(this.$refs.spreadsheetDom, {
mode: 'read', // 设置为只读模式,用户无法编辑单元格
});
设置单元格样式
const s = new Spreadsheet("#spreadsheet", {
style: {
bgcolor: '#f0f0f0', // 背景颜色
color: '#333', // 字体颜色
align: 'center', // 水平居中
valign: 'middle', // 垂直居中
font: {
name: 'Helvetica', // 字体
size: 12, // 字号
bold: true, // 加粗
italic: false, // 不使用斜体
},
}
});
操作和事件处理
const s = new Spreadsheet("#spreadsheet");
s.on('cell-selected', (cell, ri, ci) => {
console.log(`Cell selected: Row ${ri}, Column ${ci}`);
});
修改单元格内容
s.cellText(1, 1, 'Hello World').reRender();
批量设置单元格值
可以通过链式调用批量设置多个单元格的值。
s.cellText(1, 1, 'Hello').cellText(2, 2, 'World').reRender();
导入和导出数据
x-data-spreadsheet 提供了 getData() 和 loadData() 方法,方便进行数据的导入导出。
导出数据:可以通过 getData() 获取当前表格的数据。
const data = s.getData();
console.log(JSON.stringify(data)); // 输出 JSON 格式的数据
导入数据:可以通过 loadData() 将数据导入表格。
const data = {
0: {
name: 'Sheet1',
rows: {
0: { cells: { 0: { text: 'A1' }, 1: { text: 'B1' } } },
1: { cells: { 0: { text: 'A2' }, 1: { text: 'B2' } } }
}
}
};
s.loadData(data);
高级功能
const s = new Spreadsheet("#spreadsheet", {
merges: [
[0, 0, 0, 1], // 合并 (0,0) 到 (0,1)
[1, 0, 1, 1] // 合并 (1,0) 到 (1,1)
]
});
阅读原文:原文链接
该文章在 2025/2/5 16:40:49 编辑过