找回密码
 立即注册

QQ登录

只需一步,快速开始

kkij

金牌服务用户

19

主题

72

帖子

211

积分

金牌服务用户

积分
211
kkij
金牌服务用户   /  发表于:2019-2-28 10:38  /   查看:3603  /  回复:5
你好,我在spread中设置了标题水平居中,其它单元格垂直居中,导出的excel未能同步居中显示,请问还要如何设置?

5 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-28 15:21:11
沙发
您好,您能否提供一下您导出的ssjson文档,我这边重现一下问题。
回复 使用道具 举报
kkij
金牌服务用户   /  发表于:2019-2-28 16:00:16
板凳
image.png134988707.png
途中数据来源于数据库,列名居中,但是到处excel后列名没有居中
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-28 17:47:39
地板
您好,实际上Spread JS的列头区域和行头区域与viewport区域的性质是一样的,

列头的默认样式虽然是居中的,但是没有加居中样式,导出到Excel中当然不会居中。

解决办法很简单:

1、设置列头区域全体居中,如下代码所示:

  1. var spread = GC.Spread.Sheets.findControl("ss");
  2. var sheet = spread.getActiveSheet();
  3. var style = new GC.Spread.Sheets.Style();
  4. style.hAlign = GC.Spread.Sheets.HorizontalAlign.center;
  5. style.vAlign = GC.Spread.Sheets.VerticalAlign.center;
  6. sheet.setStyle(0,-1,style,GC.Spread.Sheets.SheetArea.colHeader);
复制代码


实际上执行了以上代码在Spread JS中看不到效果,但是导出到Excel中后就可以看到列头居中显示了。

2、导出Excel,设置将列头导出为冻结行即可,参考API:

http://help.grapecity.com/spread ... orkbook~toJSON.html

其中columnHeaderAsFrozenRows就是这个作用。
回复 使用道具 举报
kkij
金牌服务用户   /  发表于:2019-3-1 13:57:18
5#
KevinChen 发表于 2019-2-28 17:47
您好,实际上Spread JS的列头区域和行头区域与viewport区域的性质是一样的,

列头的默认样式虽然是居中 ...

var cstyle = sheet.getDefaultStyle(GC.Spread.Sheets.SheetArea.colHeader);
   cstyle.hAlign = GC.Spread.Sheets.HorizontalAlign.center;
   cstyle.backColor = "lightGray";
   sheet.setStyle(0, -1, cstyle, GC.Spread.Sheets.SheetArea.colHeader);

用此方式设置居中已经没问题,但是设置的颜色,在网页上生效了,excel中没有着色
另外,控件的默认中英文字体是什么?导出到excel都是宋体,也需要重新设置吗?如何设置字体?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-1 18:13:39
6#
字体设置可以参考学习指南:

https://demo.grapecity.com.cn/Sp ... Sample/#/demos/font

表头对颜色的渲染可以试试按单元格遍历。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部