Datasheet
可以获取表格信息,并支持对表格中的视图、字段、记录进行操作
datasheet.Datasheet
id 表格的 ID
name 表格的名字
url 表格的 URL 地址
description 表格的描述
views: 获取所有视图
fields: 获取所有字段
getView: 获取视图
getField: 获取字段
createFieldAsync: 新增字段
deleteFieldAsync: 删除字段
getRecordAsync: 获取指定的一条记录
getRecordsAsync: 获取多条记录
createRecordAsync: 新增记录
createRecordsAsync: 批量新增记录
updateRecordAsync: 修改记录的值
updateRecordsAsync: 批量修改记录的值
deleteRecordAsync: 删除记录
deleteRecordsAsync: 批量删除记录
配件
id
• get id(): undefined | string
表格 id, 表格的唯一标识
返回值
undefined | string
示例
console.log(myDatasheet.id);
// => 'dstxxxxxxx'
name
• get name(): undefined | string
表格名称
返回值
undefined | string
示例
console.log(myDatasheet.name);
// => '我是表格名称'
description
• get description(): undefined | string
表格描述信息
返回值
undefined | string
示例
console.log(myDatasheet.description);
// => '我是描述信息'
url
• get url(): string
表格 url
返回值
string
示例
console.log(myDatasheet.url);
// => 'https://vika.cn/workbench/dstxxxxxxx'
views
• get views(): View[]
表格的视图列表
返回值
View[]
示例
console.log(myDatasheet.views);
// => [View, View]
fields
• get fields(): undefined | Field[]
表格的所有字段
返回值
undefined | Field[]
示例
console.log(myDatasheet.fields);
// => [Field, Field]
方法
getView
▸ getView(viewKey): View
获取表格中指定的视图
参数
| Name | Type | Description |
|---|---|---|
viewKey | string | 视图的 名称 或 ID |
返回值
示例
console.log(myDatasheet.getView('视图01')); // => View
console.log(myDatasheet.getView('viwxxxxxx')); // => View
getField
▸ getField(fieldKey): Field
获取表格中指定的字段
参数
| Name | Type | Description |
|---|---|---|
fieldKey | string | 字段的 名称 或 ID |
返回值
示例
console.log(myDatasheet.getField('单选字段')); // => Field
console.log(myDatasheet.getField('fldxxxxxx')); // => Field
createFieldAsync
▸ createFieldAsync(name, type, property): Promise<string>
新增字段
参数
| Name | Type | Description |
|---|---|---|
name | string | 字段名称 |
type | FieldType | 字段类型 |
property | IAddOpenFieldProperty | 字段属性 |
返回值
Promise<string>
描述
有关新增字段属性值写入格式,请参阅 FieldType
示例
function createFieldAsync(name, type, property) {
await myDatasheet.createFieldAsync(name, type, property);
}
deleteFieldAsync
▸ deleteFieldAsync(fieldId, conversion?): Promise<void>
删除字段
参数
| Name | Type | Description |
|---|---|---|
fieldId | string | 字段ID |
conversion? | Conversion | 删除字段为关联字段的时候,标记关联表的关联字段是删除还是转换成文本,默认为 转成文本字段 |
返回值
Promise<void>
描述
当用户无权限进行操作时,将会抛出错误
示例
function deleteFieldAsync(fieldId) {
await myDatasheet.deleteFieldAsync(fieldId);
}
getRecordAsync
▸ getRecordAsync(recordId): Record
获取表格中指定的 Record
参数
| Name | Type | Description |
|---|---|---|
recordId | string | 记录 ID |
返回值
示例
console.log(myDatasheet.getRecordAsync(myRecordId));
// => Record
getRecordsAsync
▸ getRecordsAsync(options?): Record[]
批量获取表格中的 Records
参数
| Name | Type | Description |
|---|---|---|
options? | Object | - |
options.recordIds? | string[] | 记录 ID 的集合 |
options.sorts? | ISortedField[] | 记录需要根据哪些字段进行排序 |
返回值
Record[]
示例
console.log(myDatasheet.getRecordsAsync()); // => [Record, Record, ...]
console.log(myDatasheet.getRecordsAsync({ recordIds: [myRecordId01, myRecordId02] })); // => [Record, Record]
createRecordAsync
▸ createRecordAsync(valuesMap?, insertPosition?): Promise<string>
新增记录
参数
| Name | Type | Description |
|---|---|---|
valuesMap | Object | key 为 fieldId, value 为单元格内容的 object |
insertPosition? | IInsertPosition | 要在视图中插入的位置 |
返回值
Promise<string>
返回新增的记录 ID
描述
新增一条记录,并可选的指定它在视图中的位置(默认在最后), 返回新增的记录 ID 数组
当用户无权限进行操作或者单元格值格式校验不通过时,将会抛出错误
有关单元格值写入格式,请参阅 FieldType
示例
async function createNewRecord(valuesMap) {
const newRecordId = await myDatasheet.createRecordAsync(valuesMap);
console.log(`新创建的记录 ID 为: ${newRecordId}`);
}
// 参数的 key 为 fieldId, value 为单元格值
createNewRecord({
fld1234567980: 'this is a text value',
fld0987654321: 1024,
});
// 不同类型的字段单元格值有特定的数据结构,需要进行正确的传入
createNewRecord({
fld1234567890: 'this is a text value', // SingleLineText 单行文本
fld0987654321: 1024, // Number 数字
fld1234567891: '选项 1', // SingleSelect 单选
fld1234567892: ['选项 1', '选项 2'], // MultiSelect 多选
fld1234567893: 1635513510962, // DateTime 日期 (时间戳)
fld1234567894: ['rec1234567'], // TwoWayLink 双向关联 (recordId)
});
createRecordsAsync
▸ createRecordsAsync(records?, insertPosition?): Promise<string[]>
批量新增记录
参数
| Name | Type | Default value | Description |
|---|---|---|---|
records | { [key: string]: any; }[] | [] | key 为 fieldId, value 为单元格内容的 object |
insertPosition? | IInsertPosition | undefined | 要在视图中插入的位置 |
返回值
Promise<string[]>
返回新增的记录 ID 数组
描述
新增多条记录,并可选的指定它在视图中的位置(默认在最后插入)
有关单元格值写入格式,请参阅 FieldType
示例
const records = [
// item 的 key 为 fieldId, value 为单元格内容
{
fld1234567890: 'this is a text value',
fld0987654321: 1024,
},
// item 为空对象时,将会创建一条空记录
{},
// 不同类型的字段单元格值有特定的数据结构,需要进行正确的传入
{
fld1234567890: 'Cat video 2', // SingleLineText 单行文本
fld0987654321: 1024, // Number 数字
fld1234567891: '选项 1', // SingleSelect 单选
fld1234567892: ['选项 1', '选项 2'], // MultiSelect 多选
fld1234567893: 1635513510962, // DateTime 日期 (时间戳)
fld1234567894: ['rec1234567'], // TwoWayLink 双向关联 (recordId)
},
];
async function createNewRecords() {
const recordIds = await myDatasheet.createRecordsAsync(records);
console.log(`新创建的记录 IDs: ${recordIds}`);
}
updateRecordAsync
▸ updateRecordAsync(recordId, valuesMap?): Promise<void>
修改记录的值
参数
| Name | Type | Description |
|---|---|---|
recordId | string | 指定要修改的 record |
valuesMap | Object | key 为 fieldId, value 为单元格内容的 object,只需要传入要修改 value,无需修改的key value 则不需要传入。要清空一个 field,需要传入 key: null |
返回值
Promise<void>
描述
当无权限,或者 recordId 不存在,或者写入的值类型不匹配的时候,会抛出对应的错误
我们将一个 record 中的一个 field 称作单元格。有关单元格值写入格式,请参阅 FieldType
如果你需要同时修改多个记录,请使用 updateRecordsAsync
示例
function updateRecordAsync(recordId, valuesMap) {
await myDatasheet.updateRecordAsync(recordId, valuesMap);
}
updateRecordsAsync
▸ updateRecordsAsync(records): Promise<void>
批量修改记录的值
参数
| Name | Type | Description |
|---|---|---|
records | { id: string ; valuesMap: { [key: string]: any; } }[] | 指定要修改的 records |
返回值
Promise<void>
描述
当无权限,或者 recordId 不存在,或者写入的值类型不匹配的时候,会抛出对应的错误
valuesMap key 为 fieldId, value 为单元格内容的 object,只需要传入要修改 value,无需修改的key value 则不需要传入。要清空一个 field,需要传入 key: null
我们将一个 record 中的一个 field 称作单元格。有关单元格值写入格式,请参阅 FieldType
如果你只需要修改单个记录,请使用 updateRecordAsync
示例
function updateRecordsAsync(id, valuesMap) {
await myDatasheet.updateRecordsAsync([{ id, valuesMap }]);
}
deleteRecordAsync
▸ deleteRecordAsync(recordId): Promise<void>
删除记录
参数
| Name | Type | Description |
|---|---|---|
recordId | string | 记录 Id |
返回值
Promise<void>
描述
通过 recordId 删除一条记录
当用户无权限进行操作时,将会抛出错误
示例
async function deleteRecordAsync(recordId) {
await myDatasheet.deleteRecordAsync(recordId);
console.log('记录已被删除');
}
deleteRecordsAsync
▸ deleteRecordsAsync(recordIds): Promise<void>
批量删除记录
参数
| Name | Type | Description |
|---|---|---|
recordIds | string[] | 记录 Id 数组 |
返回值
Promise<void>
描述
通过 recordIds 数组批量删除记录
当用户无权限进行操作时,将会抛出错误
示例
async function deleteRecordsAsync(recordIds) {
await myDatasheet.deleteRecordsAsync(recordIds);
console.log('记录已被批量删除');
}