SpreadJS设置主题字体
本帖最后由 Richard.Ma 于 2024-3-21 12:17 编辑背景:客户在Excel中创建的xlsx文件,单元格字体显示为宋体,但是在spreadjs中加载后字体变成了Calibri Light, 通过spreadjs的font接口,获取到的也是Calibri
上述差异的原因在于“主题字体”,SpreadJS目前和英文版本的Excel的默认主题字体一致,而和中文版本的Excel有所差异导致
这篇文章会简单介绍“主题字体" 相关知识,以及在SpreadJS设置主题字体的办法
主题字体是什么?
主题字体是excel中主题的一部分,它定义了单元格在未设置任何字体的情况下,默认用来显示的字体,下图是中文版本excel中主题字体的设置菜单
可以看到当前默认主题字体为office: 等线 Light / 等线,这里的"等线 Light" 和 " 等线"两个字体分别是用于标题字体和正文字体
如下图2,单元格默认情况下是正文,应用的是正文字体。如果设置为了标题,那么应用的就是标题字体
SpreadJS中的主题字体
SpreadJS中,目前和英文版本的Excel的默认主题字体一致,标题字体和正文字体分别为:"Calibri Light" 和 "Calibri"
因此,如果将中文版Excel或者wps生成的xlsx文件加载到SpreadJS中,在未设置字体的单元格中,会发现显示的字体变成了上述字体
解决办法是设置为和中文版excel相同的字体即可,具体的设置代码如下:
获取和设置主题字体
获取主题字体
var headerfont=sheet.currentTheme().headerFont();
var bodyfont=sheet.currentTheme().bodyFont();
设置主题字体,例如都设置为宋体
sheet.currentTheme().headerFont('SimSun');
sheet.currentTheme().bodyFont('SimSun');
页:
[1]