工作簿级别
SheetNext 是主入口类,管理整个电子表格应用。
| 属性 | 类型 | 说明 |
|---|---|---|
workbookName |
string |
工作簿名称(可读写,长度1-255字符) |
activeSheet |
Sheet |
当前激活的工作表(可读写) |
sheets |
Sheet[] |
所有工作表数组 |
sheetNames |
string[] |
工作表名称列表(只读) |
containerDom |
HTMLElement |
编辑器容器元素 |
namespace |
string |
实例的全局命名空间(如 SN_0) |
locked |
boolean |
是否锁定工作表切换/操作 |
addSheet(name?: string): Sheet
添加新工作表,名称可选(自动生成 Sheet1、Sheet2 等)。
const newSheet = SN.addSheet("销售数据");
const autoSheet = SN.addSheet(); // 自动命名
规则: 名称不重复、长度1-31字符、不含特殊符号 : / \ * ? [ ]
delSheet(name: string): void
删除指定工作表(至少保留一个可见工作表)。
SN.delSheet("Sheet2");
getSheetByName(name: string): Sheet | null
根据名称获取工作表。
const sheet = SN.getSheetByName("Sheet1");
getVisibleSheetByIndex(index: number): Sheet
获取可见工作表(按索引,隐藏工作表不计入)。
const firstSheet = SN.getVisibleSheetByIndex(0);
r(): void
手动触发画布重新渲染(批量修改后使用)。
// 批量修改后刷新
for (let i = 0; i < 100; i++) {
sheet.getCell(i, 0).editVal = i;
}
SN.r();
getData(): object
获取完整的工作簿数据(JSON格式),包含所有工作表、单元格数据、样式、公式、图表等。
// 获取工作簿数据
const data = SN.getData();
使用场景:
- 数据备份和恢复
- 数据持久化到数据库或本地存储
- 数据分析和处理
- 跨系统数据传输
示例:保存到 localStorage
// 保存数据
const data = SN.getData();
localStorage.setItem('sheetData', JSON.stringify(data));
// 读取数据
const savedData = JSON.parse(localStorage.getItem('sheetData'));
SN.setData(savedData);
setData(data: object): boolean
加载完整的工作簿数据,替换当前所有工作表内容。
SN.setData(data):boolean;
import(file: File): Promise<void>
导入文件,支持 .xlsx、.csv 和 .json 格式。
// 通过文件选择器导入
const fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.accept = '.xlsx,.csv,.json';
fileInput.onchange = (e) => {
const file = e.target.files[0];
SN.import(file);
};
fileInput.click();
支持格式:
.xlsx- Excel 工作簿(完整支持).csv- 逗号分隔值文件(导入为单个工作表).json- SheetNext JSON 格式(包含样式、公式、图表等)
importFromUrl(url: String): Promise<void>
通过在线地址导入 Excel 文件(.xlsx 格式)。
await SN.importFromUrl('https://example.com/data.xlsx');
export(type: string): void
导出电子表格,支持 "XLSX"、"CSV" 和 "JSON" 格式。
SN.export('XLSX'); // 导出为 Excel 文件
格式说明:
XLSX- Excel 工作簿格式,支持多工作表、样式、公式、图表等CSV- 纯文本格式,仅导出当前激活工作表的数据(不含样式)JSON- SheetNext 专用格式,完整保存工作簿结构、样式、公式、图表等,适合数据备份和快速加载
SheetNext 支持同一页面创建多个独立实例:
const editor1 = new SheetNext(document.querySelector('#container1'));
const editor2 = new SheetNext(document.querySelector('#container2'));
console.log(editor1.namespace); // "SN_0"
console.log(editor2.namespace); // "SN_1"