테이블, 필드 및 레코드
Base에는 순서가 지정된 테이블이 있습니다. 각 테이블에는 필드 정의, 레코드 값, 선택적 셀 데이터 행렬, 리소스, 뷰, 렌더링 및 조회 로직에 사용되는 인덱스가 포함됩니다.
새 테이블은 레코드 0개로 시작합니다. Facade API 또는 가져오는 스냅샷 데이터로 레코드를 명시적으로 추가하세요.
테이블 스냅샷
| 속성 | 유형 | 설명 |
|---|---|---|
| id | string | 테이블 ID입니다. |
| name | string | 테이블 이름입니다. |
| fields | Record\<string, IFieldSnapshot\> | 필드 ID를 키로 사용하는 필드 정의입니다. |
| fieldOrder | string[] | 정렬된 필드 ID 목록입니다. |
| records | Record\<string, IRecordSnapshot\> | 레코드 ID를 키로 사용하는 레코드 데이터입니다. |
| recordOrder? | string[] | 정렬된 레코드 ID 목록입니다. |
| primaryFieldId | string | 기본 필드 ID입니다. |
| views | Record\<string, IViewSnapshot\> | 뷰 ID를 키로 사용하는 뷰입니다. |
| viewOrder | string[] | 정렬된 뷰 ID 목록입니다. |
| resources? | IBaseResources | 공유 옵션, 구성원, 첨부 파일 리소스입니다. |
필드 스냅샷
| 속성 | 유형 | 설명 |
|---|---|---|
| id | string | 필드 ID입니다. |
| name | string | 필드 이름입니다. |
| description? | string | 필드 설명입니다. |
| type | BaseFieldType | 필드 유형입니다. |
| config | Record\<string, unknown\> | 유형별 필드 구성입니다. |
| defaultValue? | BaseCellValue | 새 레코드의 기본값입니다. |
| system? | boolean | 시스템에서 필드를 관리하는지 여부입니다. |
| readonly? | boolean | 값이 읽기 전용인지 여부입니다. |
필드 유형
일반적인 필드 유형으로는 text, number, currency, progress, rating, checkbox, singleSelect, multiSelect, person, group, date, attachment, formula, createdAt, updatedAt, createdBy, updatedBy가 있습니다.
애플리케이션 코드를 작성할 때는 Facade 열거형을 사용하세요.
TypeScript
const field = table.addField('Due date', univerAPI.Enum.BaseFieldType.Date)레코드 스냅샷
| 속성 | 유형 | 설명 |
|---|---|---|
| id | string | 레코드 ID입니다. |
| values | Record\<string, BaseCellValue\> | 필드 ID를 키로 사용하는 값입니다. |
| orderKey | string | 안정적인 정렬 키입니다. |
| createdAt | number | 생성 타임스탬프입니다. |
| updatedAt | number | 업데이트 타임스탬프입니다. |
| createdBy? | string | 생성자 ID입니다. |
| updatedBy? | string | 마지막 업데이트 사용자 ID입니다. |
Facade 예제
TypeScript
const table = base.insertTable('Tasks', { primaryFieldName: 'Title' })const title = table.getPrimaryField()const status = table.addField('Status', univerAPI.Enum.BaseFieldType.SingleSelect)const record = table.addRecord({ [title.getId()]: 'Write guide', [status.getId()]: 'In progress',})이 가이드는 어떠셨나요?