一、开源项目简介
基于 JavaScript 快速构建 Web Excel
极简、高效、配置简单
这是一个基于 Web(es6) canvas 构建的轻量级 Excel 开发库。
二、开源协议
使用MIT开源协议
三、界面展示

四、功能概述
轻量级
完整功能,包含所有插件。代码打包后只不到 200kb
易于使用
如果只需要一些简单的功能可以零配置
数据驱动
调整数据非常的简单快捷
基础功能
已经支持下列功能
撤销重做
添加行列
删除行列
隐藏行列
动态调整行列功能
冻结行列
添加边框/颜色/边框线条样式
合并单元格
复制
粘贴
打印
公式
筛选
自动填充
多表支持
字体样式
自定义字体/大小/颜色
填充前景色/背景色
格式校验
对齐方式
文字换行
五、技术选型
快速入门开发
CDN
你可以直接在 html 静态文件中引入
<link rel="stylesheet" href="https://unpkg.com/x-data-spreadsheet@1.1.9/dist/xspreadsheet.css">
<script src="https://unpkg.com/x-data-spreadsheet@1.1.9/dist/xspreadsheet.js">
</script>
<script>
x_spreadsheet("#xspreadsheet");
</script>
NPM
你可以使用 npm 包的形式安装
# 基于项目构建 npm install x-data-spreadsheet
在 html 中
<div id="x-spreadsheet-demo"></div>
在 js 中
import Spreadsheet from "x-data-spreadsheet";
// If you need to override the default options, you can set the override//
const options = {};
//
new Spreadsheet("#x-spreadsheet-demo", options);
const s = new Spreadsheet("#x-spreadsheet-demo")
.loadData({}) // load data
.change(data => {
// save data to db
});
// data
validations.validate()
默认配置
{ mode: "edit", // edit | read showToolbar: true, showGrid: true, showContextmenu: true, view: { height: () => document.documentElement.clientHeight, width: () => document.documentElement.clientWidth, }, row: { len: 100, height: 25, }, col: { len: 26, width: 100, indexWidth: 60, minWidth: 60, }, style: { bgcolor: "#ffffff", align: "left", valign: "middle", textwrap: false, strike: false, underline: false, color: "#0a0a0a", font: { name: "Helvetica", size: 10, bold: false, italic: false, }, },}
导入和导出
关于如何导出,请查看 如果需要自定义导出,可以使用 SheetJs 来完成导出,并且再次感谢
绑定事件
简单的事件绑定
const s = new Spreadsheet("#x-spreadsheet-demo") // event of click on cell
s.on("cell-selected", (cell, ri, ci) => {});
s.on("cells-selected", (cell, { sri, sci, eri, eci }) => {}); // edited on cell
s.on("cell-edited", (text, ri, ci) => {});
快速设定单元格值
通过instance.cellText(ri,ci,text)来设定值,调用reRender()来刷新,你将会看到数据的变化
const s = new Spreadsheet("#x-spreadsheet-demo");
s.cellText(5, 5, "xxxx").cellText(6, 5, "yyy").reRender();
获取选定表格中单元的样式和值
const s = new Spreadsheet("#x-spreadsheet-demo")
// cell(ri, ci, sheetIndex = 0)
s.cell(ri, ci);
// cellStyle(ri, ci, sheetIndex = 0)
s.cellStyle(ri, ci);
快速本地化
如果是在 js 中引入
如果遇到更多问题,可以查看 issue #281
// npm
import Spreadsheet from "x-data-spreadsheet";
import zhCN from "x-data-spreadsheet/dist/locale/zh-cn";
Spreadsheet.locale("zh-cn", zhCN);
new Spreadsheet(document.getElementById("xss-demo"))
可以使用 CDN
<!-- Import via CDN -->
<link rel="stylesheet" href="https://unpkg.com/x-data-spreadsheet@1.1.9/dist/xspreadsheet.css">
<script src="https://unpkg.com/x-data-spreadsheet@1.1.9/dist/xspreadsheet.js"></script>
<script src="https://unpkg.com/x-data-spreadsheet@1.1.9/dist/locale/zh-cn.js"></script>
<script>
x_spreadsheet.locale("zh-cn");
</script>
加入开发者
# 拉取<repo>
访问一飞开源:https://code.exmay.com/ 下载
# 进入项目开发目录
cd x-spreadsheet
# 安装相关依赖
npm install
# just do it
npm run dev
浏览器支持
chrome, firefox, Safari
阅读原文:点击这里
该文章在 2026/8/10 12:27:09 编辑过