SheetDataInputCellCellStyleCellStyleFullBorderStyleViewRangeCellRectMergeInfoValidationTypeValidationOperatorValidationModeValidationRuleValidationDataValidationErrorChangeListenerStyleValueDrawBoxOptionsDrawBoxParamsCanvasRenderingOptionsRangeCallbackEventListenerCellRenderFnMessages@tego/sheet 的 TypeScript 类型定义。
SheetDataInput#加载电子表格数据的输入数据结构。
interface SheetDataInput {
name?: string; // 表格名称
freeze?: string; // 冻结位置(如 'A1')
styles?: CellStyle[]; // 样式定义
merges?: string[]; // 合并单元格范围(如 ['A1:B2'])
cols?: {
len?: number; // 列数
[key: number]: { width?: number };
};
rows?: {
[key: number]: {
cells: {
[key: number]: {
text: string;
style?: number; // 样式数组索引
merge?: [number, number];
};
};
};
};
}Cell#单元格数据结构。
interface Cell {
text?: string; // 单元格文本内容
style?: number; // 样式索引
merge?: [number, number]; // 合并跨度 [行数, 列数]
editable?: boolean; // 是否可编辑
[key: string]: unknown;
}CellStyle#单元格样式定义。
interface CellStyle {
align?: 'left' | 'center' | 'right';
valign?: 'top' | 'middle' | 'bottom';
font?: {
bold?: boolean;
italic?: boolean;
name?: string;
size?: number;
};
bgcolor?: string; // 背景色
textwrap?: boolean; // 文本换行
color?: string; // 文字颜色
strike?: boolean; // 删除线
underline?: boolean; // 下划线
border?: {
top?: BorderStyle;
right?: BorderStyle;
bottom?: BorderStyle;
left?: BorderStyle;
};
format?: string; // 数字格式
}CellStyleFull#包含所有必需属性的完整单元格样式。
interface CellStyleFull {
align: 'left' | 'center' | 'right';
valign: 'top' | 'middle' | 'bottom';
font: {
bold: boolean;
italic: boolean;
name: string;
size: number;
};
bgcolor: string;
textwrap: boolean;
color: string;
strike: boolean;
underline: boolean;
format: string;
}BorderStyle#边框样式定义。
type BorderStyle = [string, string, string];
// [线条样式, 颜色, 宽度]
// 如 ['thin', '#000000', '1px']ViewRange#定义可见区域范围。
interface ViewRange {
sri: number; // 起始行索引
sci: number; // 起始列索引
eri: number; // 结束行索引
eci: number; // 结束列索引
w: number; // 宽度
h: number; // 高度
each?: (
cb: (ri: number, ci: number) => void,
filteredCb?: (ri: number) => boolean,
) => void;
intersects?: (other: ViewRange) => boolean;
clone?: () => ViewRange;
}CellRect#单元格矩形信息。
interface CellRect {
ri: number; // 行索引
ci: number; // 列索引
left: number;
top: number;
width: number;
height: number;
}MergeInfo#合并单元格信息。
interface MergeInfo {
sri: number; // 起始行索引
sci: number; // 起始列索引
eri: number; // 结束行索引
eci: number; // 结束列索引
}ValidationType#可用的验证类型。
type ValidationType =
| 'number'
| 'email'
| 'phone'
| 'list'
| 'date'
| 'custom';ValidationOperator#验证操作符。
type ValidationOperator =
| 'be' // 介于
| 'nbe' // 不介于
| 'eq' // 等于
| 'neq' // 不等于
| 'lt' // 小于
| 'lte' // 小于或等于
| 'gt' // 大于
| 'gte'; // 大于或等于ValidationMode#验证模式。
type ValidationMode = 'stop' | 'alert' | 'hint';ValidationRule#验证规则结构。
interface ValidationRule {
type: ValidationType;
required: boolean;
value: string | string[];
operator: ValidationOperator;
}ValidationData#完整的验证数据。
interface ValidationData {
refs: string[]; // 单元格引用,如 ['A1', 'B2:C3']
mode: ValidationMode;
type: ValidationType;
required: boolean;
operator: ValidationOperator;
value: string | string[];
}ValidationError#验证错误信息。
interface ValidationError {
ri: number;
ci: number;
message: string;
}ChangeListener#变更事件监听器类型。
type ChangeListener = (data: SheetDataInput | SheetDataInput[]) => void;StyleValue#样式值类型。
type StyleValue = string | number | boolean | Record<string, unknown>;DrawBoxOptions#绘制框选项。
interface DrawBoxOptions {
bgcolor?: string;
align?: 'left' | 'center' | 'right';
valign?: 'top' | 'middle' | 'bottom';
font?: string;
color?: string;
strike?: boolean;
underline?: boolean;
textwrap?: boolean;
}DrawBoxParams#绘制框参数。
interface DrawBoxParams {
x: number;
y: number;
width: number;
height: number;
padding?: number;
bgcolor?: string;
borderTop?: BorderStyle | null;
borderRight?: BorderStyle | null;
borderBottom?: BorderStyle | null;
borderLeft?: BorderStyle | null;
}CanvasRenderingOptions#Canvas 渲染选项。
interface CanvasRenderingOptions {
fillStyle?: string;
strokeStyle?: string;
lineWidth?: number;
font?: string;
textAlign?: CanvasTextAlign;
textBaseline?: CanvasTextBaseline;
}RangeCallback#范围选择回调。
type RangeCallback<T = unknown> = (value: T) => void;EventListener#事件监听器类型。
type EventListener<T = unknown> = (event: T) => void;CellRenderFn#单元格渲染函数类型。
type CellRenderFn = (x: number, y: number) => string | number;Messages#本地化消息类型。
interface Messages {
[key: string]: string | Messages;
}