惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
A
About on SuperTechFans
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
V
Visual Studio Blog
Martin Fowler
Martin Fowler
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 叶小钗
I
InfoQ
B
Blog RSS Feed
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
IT之家
IT之家
P
Proofpoint News Feed
WordPress大学
WordPress大学
小众软件
小众软件
B
Blog
MongoDB | Blog
MongoDB | Blog
人人都是产品经理
人人都是产品经理
量子位
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客

博客园 - 帆张芳显

开源免费可商用!智表ZCELL设计器,彻底解放Web表格开发 智表ZCELL产品V3.7 版发布,新增设计器等功能 前端表格筛选卡顿?智表ZCELL毫秒级响应与全场景筛选方案揭秘 智表ZCELL产品V3.6 版发布,新增系统预置右键菜单操作、页签栏操作等功能 10万行数据1秒内排序,智表 ZCELL 让你轻松驾驭数据秩序 智表ZCELL产品V3.5 版发布,新增行列选中操作等功能 智表ZCELL产品V3.4 版发布,新增区域筛选、字母列参等功能。 智表 ZCELL 公式引擎,帮你解锁自定义函数与跨表计算的强大能力 智表 ZCELL:纯前端 Excel 导入导出的高效解决方案,让数据处理更轻松 智表ZCELL产品V3.3 版发布,新增排序、跨表公式、自适应行高等功能 还在手撸在线EXCEL功能?智表ZCELL帮你省掉80%代码,用户满意度翻倍! 前端开发者的利器:6款最强类EXCEL表格插件对比,轻松实现Excel级交互 智表ZCELL产品V3.2 版发布,新增拖动调整行列功能,修复了插件引用相对路径等问题 可编辑前端列表页面,让你的用户直接粘贴录入数据 智表 ZCELL 插件快速入门指南(原创) 仿EXCEL插件,智表ZCELL产品V3.0 版本发布,底层采用canvas全部重构,功能大幅扩展,性能极致提升,满足千万级单元格加载 智表ZCELL专业版授权说明 标数据,您的招投标业务专家 标数据文件重复对比工具,是一个免费的文件内容重复率计算的工具。 仿EXCEL插件,智表ZCELL产品V2.2 版本发布,增加获取单元格类型、样式功能,优化键盘事件、数值千分位等功能 仿EXCEL插件,智表ZCELL产品V2.1 版本发布,增加列标、行标自定义设置及单元格属性自定义相关功能,优化公式随动功能 智表ZCELL产品V2.0发版小感
前端EXCEL插件智表ZCELL数据源功能详解
帆张芳显 · 2025-05-28 · via 博客园 - 帆张芳显

一、数据源功能介绍
前端EXCEL插件智表ZCELL提供了强大的数据源管理功能,使开发者能够灵活地在电子表格中集成和管理结构化数据。数据源功能主要分为两种类型:

卡片式数据源:适合展示和编辑单个数据记录

表格式数据源:适合处理表格形式的多行数据

二、核心API详解
1. 创建数据源 (CreatDataSource)
功能:初始化数据源对象,支持卡片式和表格式两种类型。

参数:

{
name: "数据源名称", //必填
type: 0, //0-卡片式,1-表格式
data: jsondata, //数据集
// 表格式特有参数
startrow: 22, //起始行索引(从0开始)
startcol: "G", //起始列索引(从A开始)
autoBindColumn: true //是否自动绑定列(可选)
}
示例代码:

// 创建卡片式数据源
var jsondata = { name: "哪吒", age: 15, address: "陈塘关" };
let option1 = {
name: "motong",
type: 0,
data: jsondata
};
let ds = sheet.CreatDataSource(option1);

// 创建表格式数据源
var persons = [];
for (let i = 0; i < 3; i++) {
let p = {
cn: (i + 1).toString().padStart(3, "0"),
book: "西游记",
auth: "吴承恩",
name: "徒弟" + (i + 1),
operate: ""
};
persons.push(p);
}

let option = {
name: "person",
type: 1,
data: persons,
startrow: 22,
startcol: "G"
};
let ds = sheet.CreatDataSource(option);

2. 设置映射关系 (Mapping)
功能:建立数据字段与表格单元格/列的对应关系。

参数:

卡片式:cname(单元格名), field(字段名)

表格式:colname(列名), field(字段名)

示例代码:

// 卡片式映射
ds.Mapping("D23", "name"); //单元格名必须大写

// 表格式映射
ds.Mapping("G", "cn"); //列名必须大写
3. 设置列样式 (SetColumnInfo)
功能:为表格式数据源的列设置样式,新增行时会自动应用这些样式。

参数:

colname: 列名

coloption: 列样式设置对象

cellType: 单元格类型

cellStyle: 单元格样式

cellBorder: 单元格边框

cellFormat: 单元格数值格式

示例代码:

ds.SetColumnInfo("G", {
cellStyle: colstyle1,
cellBorder: border1
});

4. 绑定数据源 (BindDataSource)
功能:将数据源对象与表页对象绑定。

示例代码:

sheet.BindDataSource(ds);
5. 获取数据源 (GetDataSource)
功能:通过名称获取已创建的数据源对象。

示例代码:

let ds1 = sheet.GetDataSource("motong");

三、数据操作功能
1. 新增数据行 (AddRow)
功能:为表格式数据源添加新行。

参数:

count: 新增行数

order: 新增顺序("asc"-尾部增加,"desc"-首行增加)

示例代码:

let ds1 = sheet.GetDataSource("person");
if (ds1 != null) {
ds1.AddRow(2, "asc"); //在尾部新增2行
}
2. 获取变更数据
ZCELL提供了多种获取变更数据的方法:

// 获取新增行
let drows = ds1.GetInsertRows();

// 获取变更行
let drows = ds1.GetChangRows();

// 获取删除行
let drows = ds1.GetDeleteRows();

// 获取变更单元格(卡片式)
let ccs = ds1.GetChangeCells();
3. 清空变更记录 (ClearChange)
功能:手工清空变更记录,标记为已提交状态。

示例代码:

let ds = sheet.GetDataSource("person");
if (ds != null) {
ds.ClearChange();
}
四、最佳实践
完整工作流程示例
// 1. 创建表格式数据源
var products = [
{ id: "001", name: "笔记本电脑", price: 5999, stock: 100 },
{ id: "002", name: "智能手机", price: 3999, stock: 150 }
];

let option = {
name: "product",
type: 1,
data: products,
startrow: 5,
startcol: "B"
};
let ds = sheet.CreatDataSource(option);

// 2. 设置列映射
ds.Mapping("B", "id");
ds.Mapping("C", "name");
ds.Mapping("D", "price");
ds.Mapping("E", "stock");

// 3. 设置列样式
let priceStyle = {
cellFormat: "¥#,##0.00",
cellStyle: { fontColor: "#FF0000", fontWeight: "bold" }
};
ds.SetColumnInfo("D", priceStyle);

// 4. 绑定数据源
sheet.BindDataSource(ds);

// 5. 添加新行
ds.AddRow(1, "asc");

// 6. 获取变更(通常在保存时调用)
let newRows = ds.GetInsertRows();
let changedRows = ds.GetChangRows();

// 7. 清空变更记录
ds.ClearChange();

五、注意事项
单元格和列名在映射时必须使用大写字母。

表格式数据源必须指定startrow和startcol参数。

新增行时会自动继承列样式设置。

变更记录只在调用ClearChange前有效。

一个表页可以绑定多个数据源。

通过本教程,您应该已经掌握了ZCELL插件数据源功能的核心使用方法。这些功能可以大大简化电子表格中的数据管理任务,特别适合需要将结构化数据与电子表格结合的应用场景。