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