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('记录已被批量删除');
}