本帖最后由 dexteryao 于 2022-3-7 11:24 编辑
SpreadJS 在V14版本新推出了在线表格编辑器的组件化版本。在组件化版本中,在线表格编辑器的定制化将通过配置与接口的调用来完成,这里不同于源码版本中修改代码的操作。通过本博客的描述,我们将明白如何使用在线表格编辑器去添加和扩展可用的字体选项。
当我们打开在线表格编辑器后,在开始菜单中可以看到设置字体的下拉菜单选项,如下图所示:
组件版在线表格编辑器默认自带的字体中,全是西文字体。所以当小伙伴们需要通过菜单去设置中文字体时候,就需要对此下拉菜单进行扩展。
组件版编辑器中,所有的菜单选项都是通过执行对应的命令来完成相应操作的,并且我们可以通过在线表格编辑器中的configjson来查找到对应模块的命令。
首先获取config配置,这里通过代码获取了默认的config配置,如果有自定义可以缓存起来直接获取。
- let config = JSON.parse(JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig));
复制代码
之后在其中找到字体设置的相关command命令名称,这里可以按照ribbon中的层级关系进行定位
之后在GC.Spread.Sheets.Designer.CommandNames中找到对应的枚举。
- GC.Spread.Sheets.Designer.CommandNames.FontFamily
复制代码 然后通过GC.Spread.Sheets.Designer.getCommand获取对应命令
- var fontFamilyCommand = GC.Spread.Sheets.Designer.getCommand(GC.Spread.Sheets.Designer.CommandNames.FontFamily);
复制代码 在其中的dropdownList中我们可以看到当前所有的下拉列表选项,这个时候我们只要在其中push我们想要自定义的字体
- fontFamilyCommand.dropdownList.push({
- text: "微软雅黑",
- value: "微软雅黑"
- });
复制代码 之后我们需要把修改后的command重新设置到config中
- if(!config.commandMap) config.commandMap = {}
- config.commandMap[GC.Spread.Sheets.Designer.CommandNames.FontFamily] = fontFamilyCommand;
复制代码 这样完成之后我们刷新一下浏览器看一下结果
|