跳到主要内容

Datasheet

可以获取表格信息,并支持对表格中的视图、字段、记录进行操作

datasheet.Datasheet

配件

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

获取表格中指定的视图

参数

NameTypeDescription
viewKeystring视图的 名称 或 ID

返回值

View

示例

console.log(myDatasheet.getView('视图01')); // => View
console.log(myDatasheet.getView('viwxxxxxx')); // => View

getField

getField(fieldKey): Field

获取表格中指定的字段

参数

NameTypeDescription
fieldKeystring字段的 名称 或 ID

返回值

Field

示例

console.log(myDatasheet.getField('单选字段')); // => Field
console.log(myDatasheet.getField('fldxxxxxx')); // => Field

createFieldAsync

createFieldAsync(name, type, property): Promise<string>

新增字段

参数

NameTypeDescription
namestring字段名称
typeFieldType字段类型
propertyIAddOpenFieldProperty字段属性

返回值

Promise<string>

描述

有关新增字段属性值写入格式,请参阅 FieldType

示例

function createFieldAsync(name, type, property) {
await myDatasheet.createFieldAsync(name, type, property);
}

deleteFieldAsync

deleteFieldAsync(fieldId, conversion?): Promise<void>

删除字段

参数

NameTypeDescription
fieldIdstring字段ID
conversion?Conversion删除字段为关联字段的时候,标记关联表的关联字段是删除还是转换成文本,默认为 转成文本字段

返回值

Promise<void>

描述

当用户无权限进行操作时,将会抛出错误

示例

function deleteFieldAsync(fieldId) {
await myDatasheet.deleteFieldAsync(fieldId);
}

getRecordAsync

getRecordAsync(recordId): Record

获取表格中指定的 Record

参数

NameTypeDescription
recordIdstring记录 ID

返回值

Record

示例

console.log(myDatasheet.getRecordAsync(myRecordId));
// => Record

getRecordsAsync

getRecordsAsync(options?): Record[]

批量获取表格中的 Records

参数

NameTypeDescription
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>

新增记录

参数

NameTypeDescription
valuesMapObjectkey 为 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[]>

批量新增记录

参数

NameTypeDefault valueDescription
records{ [key: string]: any; }[][]key 为 fieldId, value 为单元格内容的 object
insertPosition?IInsertPositionundefined要在视图中插入的位置

返回值

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>

修改记录的值

参数

NameTypeDescription
recordIdstring指定要修改的 record
valuesMapObjectkey 为 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>

批量修改记录的值

参数

NameTypeDescription
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>

删除记录

参数

NameTypeDescription
recordIdstring记录 Id

返回值

Promise<void>

描述

通过 recordId 删除一条记录

当用户无权限进行操作时,将会抛出错误

示例

async function deleteRecordAsync(recordId) {
await myDatasheet.deleteRecordAsync(recordId);
console.log('记录已被删除');
}

deleteRecordsAsync

deleteRecordsAsync(recordIds): Promise<void>

批量删除记录

参数

NameTypeDescription
recordIdsstring[]记录 Id 数组

返回值

Promise<void>

描述

通过 recordIds 数组批量删除记录

当用户无权限进行操作时,将会抛出错误

示例

async function deleteRecordsAsync(recordIds) {
await myDatasheet.deleteRecordsAsync(recordIds);
console.log('记录已被批量删除');
}