找回密码
 立即注册

QQ登录

只需一步,快速开始

Z_Jun

注册会员

2

主题

11

帖子

172

积分

注册会员

积分
172
最新发帖
Z_Jun
注册会员   /  发表于:2020-11-13 11:07  /   查看:5814  /  回复:12
1金币
本帖最后由 Z_Jun 于 2020-11-16 10:34 编辑

QQ截图20201113110256.png    微信图片_20201113110114.png
我想在spreadJS和在线编辑器里添加新的字体要怎么实现?
之前看到这个帖子 https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=79291&extra=page%3D1 但是发现并没有 resources.cn.js 这个文件,请问要怎么添加字体呢?

最佳答案

查看完整内容

您好: 看您用的是组件的设计器,组件版设计器设置代码如下: 首先,在默认设计器的config中找到对应的字体设置的command 如上图所示,command为fontFamily 然后通过GC.Spread.Sheets.Designer.getCommand("fontFamily");获取到fontFamily的command 如下图所示: 可以看到其中的dorpdownList里面配置的是下拉的字体选项,之后在其中push需要的字体就可以了,如下面所示: customCommand.dropdownList.push({ text: ...

12 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-13 11:07:12
来自 2#
您好:
看您用的是组件的设计器,组件版设计器设置代码如下:
首先,在默认设计器的config中找到对应的字体设置的command
image.png128100279.png
如上图所示,command为fontFamily
然后通过GC.Spread.Sheets.Designer.getCommand("fontFamily");获取到fontFamily的command
如下图所示:
image.png904166259.png
可以看到其中的dorpdownList里面配置的是下拉的字体选项,之后在其中push需要的字体就可以了,如下面所示:
customCommand.dropdownList.push({
    text: "customFont",
    value: "customFont"
});
回复 使用道具 举报
Z_Jun
注册会员   /  发表于:2020-11-16 09:13:26
3#
本帖最后由 Z_Jun 于 2020-11-16 10:25 编辑
ClarkPan 发表于 2020-11-13 15:48
您好:
看您用的是组件的设计器,组件版设计器设置代码如下:
首先,在默认设计器的config中找到对应的字 ...

我这边获取到的dropdownList是空数组,虽然添加进去了,但是下拉选框还是没有添加的字体,是否跟我是测试版有关系? 字体1.png

字体2.png

字体3.png

字体4.png

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-16 14:33:34
4#
您说数组为空的情况我这边没有复现,请用最新的14版本测试。
另外,修改之后少了一个注册新命令的过程,所以自定义的行为都需要重新注册
请参考

var designerConfig = JSON.parse(JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig))

    designerConfig.commandMap = {}
var fontFamilyCommand = GC.Spread.Sheets.Designer.getCommand(GC.Spread.Sheets.Designer.CommandNames.FontFamily);
fontFamilyCommand.dropdownList.push({
    text: "微软雅黑",
    value: "微软雅黑"
});
designerConfig.commandMap[GC.Spread.Sheets.Designer.CommandNames.FontFamily] = fontFamilyCommand

    var designer = new GC.Spread.Sheets.Designer.Designer(
        document.getElementById('ssDesigner'), /**designer host */
        designerConfig, // designerConfigJson /**If you want to change Designer's layout or rewrite it, you can pass in your own Config JSON */ ,
        undefined /**If you want to use the spread you already created instead of generating a new spread, pass in */
    );
回复 使用道具 举报
Z_Jun
注册会员   /  发表于:2020-11-16 16:23:52
5#
本帖最后由 Z_Jun 于 2020-11-16 16:27 编辑
dexteryao 发表于 2020-11-16 14:33
您说数组为空的情况我这边没有复现,请用最新的14版本测试。
另外,修改之后少了一个注册新命令的过程,所 ...

我下载v14的试用版在本地运行vue项目时GC.Spread.Sheets.Designer属性有这么多,

11.png

但是在项目中通过npm安装运行GC.Spread.Sheets.Designer属性只有几个
22.png

是什么原因呢?我是在本地localhost允运行的项目

package如下:
33.png
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-16 18:17:58
6#
你用的什么框架,有些框架有tree shaking的功能,为了减小打包体积,没用到的功能就摇掉了。
回复 使用道具 举报
Z_Jun
注册会员   /  发表于:2020-11-17 08:38:59
7#
dexteryao 发表于 2020-11-16 18:17
你用的什么框架,有些框架有tree shaking的功能,为了减小打包体积,没用到的功能就摇掉了。

我用的是vue框架,但是我用v14试用版里samples文件下的vue示例打印出有很多属性的。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-17 11:49:17
8#
对比了一下,少的那个是内测版的设计器,多的那个是V14新发布的正式版的设计器。
请确认npm中引用的designer的路径是否是内部引用路径。像下图这样:
image.png565606078.png
如果是,请更新为正式发布最新版的引用路径

如果还有问题,确认一下用的是npm还是cnpm,cnpm本身存在同步不及时的情况,可能还未更新,请切换为npm
回复 使用道具 举报
Z_Jun
注册会员   /  发表于:2020-11-17 15:25:52
9#
ClarkPan 发表于 2020-11-17 11:49
对比了一下,少的那个是内测版的设计器,多的那个是V14新发布的正式版的设计器。
请确认npm中引用的design ...

我删掉之前的安装包重新npm后就可以了,谢谢。
还有一个问题我在菜单栏是能添加了,但右键设置单元格格式弹框下字体怎么添加?

QQ截图20201117152520.png
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-17 18:52:43
10#
收到,我需要调研一下,有结果了给您回复
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部