x-data-spreadsheet使用教程、参数配置、数据格式及样式修改

官方文档

文档地址

一、使用npm下载

  npm install x-data-spreadsheet
  npm install xlsx

在html中

//overflow: hidden 按实际页面需求使用
<div ref="sheetContainer" id="x-spreadsheet-demo" style="overflow: hidden"></div>

在script中

import * as XLSX from "xlsx";
import Spreadsheet from "x-data-spreadsheet";
import zhCN from "x-data-spreadsheet/src/locale/zh-cn";
Spreadsheet.locale("zh-cn", zhCN);

const sheetContainer = ref(null);//标签的ref
const s = ref(null);
//rows是这个插件需要的数据渲染格式
const sampleData = {
	name: "sheet",
	rows: {
		//  editable: false 这个加在单元格里表示不能编辑
		0: { cells: { 0: { text: "title1" }, 1: { text: "title2" }, 2: { text: "title3" }, 3: { text: "title4" } } },
		1: { cells: { 0: { text: "测试1" }, 1: { text: "测试1" }, 2: { text: "测试1" }, 3: { text: "测试1" } } },
		2: { cells: { 0: { text: "测试1" }, 1: { text: "测试1" }, 2: { text: "测试1" }, 3: { text: "测试1" } } },
		3: { cells: { 0: { text: "测试1" }, 1: { text: "测试1" }, 2: { text: "测试1" }, 3: { text: "测试1" } } },
		4: { cells: { 0: { text: "测试1" }, 1: { text: "测试1" }, 2: { text: "测试1" }, 3: { text: "测试1" } } }
	}
};
const initTable = () => {
	if (s.value) {
		sheetContainer.value.innerHTML = ""; // 销毁上一个实例,这里是因为我需要在同一个dom加载多个表格
	}
	s.value = new Spreadsheet("#x-spreadsheet-demo")
		.loadData(sampleData)
		.change(data => {});
	s.value.validate();
};

// 引用 在需要生成表格的事件里面
	nextTick(() => {
		initTable();
	});

// 获取表格数据的方法

s.value.getData()[0].rows

二、使用CDN引入

(备注:此方法是因为当时需要改表头索引行和索引列的样式,但是没找修改的方法和css,就只能改源码了)
在index.html页面中引入:

<link rel="stylesheet" href="static/js/Spreadsheet/xspreadsheet.css" />

<script type="text/javascript" src="static/js/Spreadsheet/xspreadsheet.js"></script>

在项目中引入文件
需要下载文件夹
html和上面使用npm下载的一样,下面有说到不同
在script中

const sheetContainer = ref(null);//标签的ref
const s = ref(null);
const initTable = () => {
	if (s.value) {
		sheetContainer.value.innerHTML = ""; // 销毁上一个实例
	}
	// 不同
	s.value = x.spreadsheet("#x-spreadsheet-demo")
		.loadData({
			name: "shteet1",
			rows: spreadsheetData //不同 这里我加载的是自己处理后的数据,这里是因为我需要在同一个dom加载多个表格
		})
		.change(data => {});
	s.value.validate();
};

// 引用 在需要生成表格的事件里面
	nextTick(() => {
		initTable();
	});

// 不同 获取表格数据的方法

s.value.getData().rows

以上就是最简单的方法,下面记录一些配置的修改

// x-data-spreadsheet有默认的options ,需要修改的话可以自己配置
let options = {
	showToolbar: false, // 顶部工具栏
	// showBottomBar: false, // 底部工具栏,用CDN引入是没生效
	// showGrid: true, // 显示网格线
	// showContextmenu: true, // 显示右键菜单
	view: {
		height: () => 600
	},
	col: {
		len: 12,//表格列数
		width: 100,
		indexWidth: 60,
		minWidth: 60
	},
	row: {
		len: 100,
		height: 30
	},
	style: {
		align: "center",
		bgcolor: "rgba(24, 39, 58, 0.44)", //有文字的单元格背景
		color: "#fff" //单元格文字颜色
	}
};

// 生成表格的时候加上options就可以了
	s.value = x.spreadsheet("#x-spreadsheet-demo", options)
		.loadData({
			name: "shteet" + sheetNameId.value,
			rows: spreadsheetData
		})
		.change(data => {});

在style中可以修改样式,表头索引行列没找到

.x-spreadsheet {
	background: rgba($color: #365569, $alpha: 0.1);
	.x-spreadsheet-editor-area {
		/* 输入框 */
		textarea {
			background-color: #365569;
			color: #fff;
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值