sheetnext 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT.md +4 -4
- package/DOCS.md +137 -0
- package/README.md +5 -1
- package/dist/sheetnext.css +1 -1
- package/dist/sheetnext.es.js +2 -2
- package/dist/sheetnext.umd.js +2 -2
- package/docs/demo.png +0 -0
- package/package.json +11 -3
- package/README.zh-CN.md +0 -100
package/AGENT.md
CHANGED
|
@@ -92,12 +92,12 @@ const OpenAI = require('openai');
|
|
|
92
92
|
const CONFIG = {
|
|
93
93
|
model: 'claude-sonnet-4-5-20250929', // 设置模型名称,自动判断使用 claude 还是 openai
|
|
94
94
|
claude: {
|
|
95
|
-
apiKey: '
|
|
96
|
-
baseURL: 'https://
|
|
95
|
+
apiKey: 'your-apiKey',
|
|
96
|
+
baseURL: 'https://xx.xx.xx/'
|
|
97
97
|
},
|
|
98
98
|
openai: {
|
|
99
|
-
apiKey: '
|
|
100
|
-
baseURL: 'https://
|
|
99
|
+
apiKey: 'your-apiKey',
|
|
100
|
+
baseURL: 'https://xx.xx.xx/v1'
|
|
101
101
|
}
|
|
102
102
|
};
|
|
103
103
|
|
package/DOCS.md
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
- [Row Class](#Row) - 行管理:行高、批量行样式、获取行内单元格、显示/隐藏等
|
|
13
13
|
- [Col Class](#Col) - 列管理:列宽、批量列样式、获取列内单元格、显示/隐藏等
|
|
14
14
|
- [Drawing Class](#Drawing) - 图形管理:图表、图形、图片的增删改查、设置位置和尺寸、调整图层顺序等
|
|
15
|
+
- [Layout Class](#Layout) - 布局管理:显示/隐藏菜单栏、工具栏、公式栏、AI 聊天面板等界面元素
|
|
15
16
|
- [Utils Class](#Utils) - 坐标转换:单元格字符串与数字坐标互转、列字母与数字互转、范围格式转换等
|
|
16
17
|
- [UndoRedo Class](#UndoRedo) - 历史管理:撤销/重做操作
|
|
17
18
|
|
|
@@ -599,6 +600,142 @@ drawing.updIndex("top"); // 移到最上层
|
|
|
599
600
|
|
|
600
601
|
---
|
|
601
602
|
|
|
603
|
+
## Layout
|
|
604
|
+
|
|
605
|
+
Layout 类管理编辑器的界面布局,包括菜单栏、工具栏、公式栏、Sheet 标签栏和 AI 聊天面板等界面元素的显示与隐藏。
|
|
606
|
+
|
|
607
|
+
### 构造函数
|
|
608
|
+
|
|
609
|
+
Layout 类由 SheetNext 自动创建,通过 `SN.Layout` 访问。
|
|
610
|
+
|
|
611
|
+
```javascript
|
|
612
|
+
const SN = new SheetNext(dom, {
|
|
613
|
+
menuList: [...], // 自定义菜单配置(可选)
|
|
614
|
+
menuRight: {...} // 自定义右侧菜单(可选)
|
|
615
|
+
});
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
**注意:** `menuList` 和 `menuRight` 只能在初始化时传入,后续无法修改。
|
|
619
|
+
|
|
620
|
+
### 属性
|
|
621
|
+
|
|
622
|
+
| 属性 | 类型 | 说明 |
|
|
623
|
+
|------|------|------|
|
|
624
|
+
| `showMenuBar` | `boolean` | 是否显示菜单栏(可读写) |
|
|
625
|
+
| `showToolbar` | `boolean` | 是否显示工具栏(可读写) |
|
|
626
|
+
| `showFormulaBar` | `boolean` | 是否显示公式栏(可读写) |
|
|
627
|
+
| `showSheetTabBar` | `boolean` | 是否显示 Sheet 标签栏(可读写) |
|
|
628
|
+
| `showAIChat` | `boolean` | 是否显示 AI 聊天面板(可读写) |
|
|
629
|
+
| `showAIChatWindow` | `boolean` | 是否显示 AI 聊天小窗口模式(可读写) |
|
|
630
|
+
| `isSmallWindow` | `boolean` | 当前是否为小窗口模式(宽度 < 900px)(只读) |
|
|
631
|
+
| `menuConfig` | `object` | 菜单配置对象(只读) |
|
|
632
|
+
|
|
633
|
+
### 菜单配置(初始化时)
|
|
634
|
+
|
|
635
|
+
#### menuList 配置
|
|
636
|
+
|
|
637
|
+
`menuList` 用于自定义顶部菜单栏,只能在初始化时传入。
|
|
638
|
+
|
|
639
|
+
**MenuList 结构:**
|
|
640
|
+
|
|
641
|
+
```typescript
|
|
642
|
+
interface MenuItem {
|
|
643
|
+
label: string; // 菜单项标签
|
|
644
|
+
handler?: () => void; // 点击处理函数
|
|
645
|
+
disabled?: boolean; // 是否禁用
|
|
646
|
+
tip?: string; // 提示信息(右侧显示)
|
|
647
|
+
divider?: boolean; // 是否为分隔线
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
interface Menu {
|
|
651
|
+
label: string; // 菜单标签
|
|
652
|
+
items: MenuItem[]; // 菜单项列表
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
type MenuList = Menu[];
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
**完整示例:**
|
|
659
|
+
|
|
660
|
+
```javascript
|
|
661
|
+
const SN = new SheetNext(document.querySelector('#container'), {
|
|
662
|
+
// 配置后覆盖原配置
|
|
663
|
+
menuList: [
|
|
664
|
+
{
|
|
665
|
+
label: '文件',
|
|
666
|
+
items: [
|
|
667
|
+
{ label: '导入 XLSX', handler: () => SN.containerDom.querySelector('.sn-upload').click() },
|
|
668
|
+
{ divider: true },
|
|
669
|
+
{ label: '导出 XLSX', handler: () => SN.export('XLSX') }
|
|
670
|
+
]
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
label: '插入',
|
|
674
|
+
items: [
|
|
675
|
+
{ label: '插入行', handler: () => SN.AI.chatInput('在表最后新插入10行') },
|
|
676
|
+
{ label: '插入列', handler: () => SN.AI.chatInput('在表最后新插入10列') },
|
|
677
|
+
{ label: '超链接', handler: () => SN.AI.chatInput('在A1插入超链接,文本:SN 地址:https://www.sheetnext.com') },
|
|
678
|
+
{ label: '图片', disabled: true, tip: '待开放' },
|
|
679
|
+
{ label: '图表', handler: () => SN.AI.chatInput('根据表中数据生成柱状图') },
|
|
680
|
+
{ label: '图形', disabled: true, tip: '待开放' },
|
|
681
|
+
{ label: '数据透视表', disabled: true, tip: '待开放' },
|
|
682
|
+
{ label: '公式', handler: () => SN.AI.chatInput('在A1编写公式,求F18:G21的平均值') }
|
|
683
|
+
]
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
label: '视图',
|
|
687
|
+
items: [
|
|
688
|
+
{ label: '显示行列标', handler: () => { SN.activeSheet.showRowColHeaders = true; SN.r(); } },
|
|
689
|
+
{ label: '隐藏行列标', handler: () => { SN.activeSheet.showRowColHeaders = false; SN.r(); } },
|
|
690
|
+
{ label: '显示网格线', handler: () => { SN.activeSheet.showGridLines = true; SN.r(); } },
|
|
691
|
+
{ label: '隐藏网格线', handler: () => { SN.activeSheet.showGridLines = false; SN.r(); } },
|
|
692
|
+
{ label: '冻结首行', handler: () => { SN.activeSheet.ySplit = 1; SN.r(); } },
|
|
693
|
+
{ label: '冻结首列', handler: () => { SN.activeSheet.xSplit = 1; SN.r(); } }
|
|
694
|
+
]
|
|
695
|
+
},
|
|
696
|
+
{
|
|
697
|
+
label: '更多',
|
|
698
|
+
items: [
|
|
699
|
+
{ label: 'SheetNext Pro', handler: () => window.open('https://www.sheetnext.com/pro') },
|
|
700
|
+
{ label: '开发文档', handler: () => window.open('https://www.github.com/wyyazlz/sheetnext') },
|
|
701
|
+
]
|
|
702
|
+
}
|
|
703
|
+
]
|
|
704
|
+
});
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
**默认菜单:**
|
|
708
|
+
|
|
709
|
+
如果不传入 `menuList`,将使用默认菜单配置(包含:文件、插入、视图、更多)。
|
|
710
|
+
|
|
711
|
+
#### menuRight 配置
|
|
712
|
+
|
|
713
|
+
`menuRight` 用于自定义菜单栏右侧区域,只能在初始化时传入。
|
|
714
|
+
|
|
715
|
+
**MenuRight 结构:**
|
|
716
|
+
|
|
717
|
+
```typescript
|
|
718
|
+
interface MenuRight {
|
|
719
|
+
html: string; // HTML 内容
|
|
720
|
+
handler?: () => void; // 点击处理函数
|
|
721
|
+
}
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
**示例:**
|
|
725
|
+
|
|
726
|
+
```javascript
|
|
727
|
+
const SN = new SheetNext(document.querySelector('#container'), {
|
|
728
|
+
menuRight: {
|
|
729
|
+
html: '<span style="color: #666;">我的应用 v1.0</span>',
|
|
730
|
+
handler: () => {
|
|
731
|
+
alert('欢迎使用!');
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
});
|
|
735
|
+
```
|
|
736
|
+
|
|
737
|
+
---
|
|
738
|
+
|
|
602
739
|
## Utils
|
|
603
740
|
|
|
604
741
|
Utils 类提供坐标转换等实用方法。
|
package/README.md
CHANGED
|
@@ -6,13 +6,17 @@
|
|
|
6
6
|
<div>
|
|
7
7
|
<a href="https://www.sheetnext.com/">🏠 官网</a> |
|
|
8
8
|
<a href="https://www.sheetnext.com/editor">🎯 在线体验</a> |
|
|
9
|
-
<a href="https://github.com/wyyazlz/sheetnext/blob/master/DOCS.md">📖
|
|
9
|
+
<a href="https://github.com/wyyazlz/sheetnext/blob/master/DOCS.md">📖 文档</a> |
|
|
10
10
|
<a href="https://github.com/wyyazlz/sheetnext/blob/master/AGENT.md">🤖 AI中转文档</a>
|
|
11
11
|
</div>
|
|
12
12
|
</div>
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
+
<div align="center">
|
|
17
|
+
<img src="docs/demo.png" alt="SheetNext Demo" />
|
|
18
|
+
</div>
|
|
19
|
+
|
|
16
20
|
## ✨ 特点
|
|
17
21
|
|
|
18
22
|
- 📊 **电子表格功能** - 支持电子表格核心功能如:单元格编辑、样式、公式引擎、图表、排序、筛选等
|