找回密码
 立即注册

QQ登录

只需一步,快速开始

thinker12

注册会员

2

主题

5

帖子

41

积分

注册会员

积分
41
最新发帖
thinker12
注册会员   /  发表于:2020-4-16 11:44  /   查看:4762  /  回复:6
1金币

最佳答案

查看完整内容

默认样式SpreadJS和Excel有些差异,SpreadJS每个sheet可以有不同默认样式,Excel是整体的。 所以导出的时候会将第一个sheet的默认样式当作Excel的默认样式。所以剧中要设置到第一个sheet上。 如果设置了还有问题,发个json上来

6 个回复

倒序浏览
最佳答案
最佳答案
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-16 11:44:42
来自 2#
默认样式SpreadJS和Excel有些差异,SpreadJS每个sheet可以有不同默认样式,Excel是整体的。
所以导出的时候会将第一个sheet的默认样式当作Excel的默认样式。所以剧中要设置到第一个sheet上。
如果设置了还有问题,发个json上来
回复 使用道具 举报
thinker12
注册会员   /  发表于:2020-4-17 15:33:18
3#
本帖最后由 thinker12 于 2020-4-17 15:38 编辑

The cell style is a composite of settings that are applied based on a priority. The style in the cell has the highest priority. The style of the row the cell is in is next, then the column the cell is in, and then the default style of the sheet.

上面一段英文是spreadjs文档里面的内容,翻译一下就是单元格样式优先级最高,然后是行、列、表单样式
通过setDefaultStyle({vAlign: 1})可以实现垂直居中,但是如果给某个单元格设置sheet.getRange(0, 0).backColor( null ),单元格依然是垂直居中状态,但导出后vAlign不会垂直居中。这算不算spreadjs和excel表现不一致的地方
我用的mondo excel2016,wps2019也是一样的效果

我目前的解决办法是导出时用代码将样式依次往前面覆盖 表单默认样 -》列 -》 行 -》 单元格样式
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-17 15:44:13
4#
我不知道您有没有按我说的将第一个sheet 设置default,如果第一个sheet 的defaultstyyle设置了vAlign,那么导出的Excel默认应该是居中的。
如果和我说的不一样,请您提供一下您这个设置了defaultstyle之后所导出json给我。
回复 使用道具 举报
thinker12
注册会员   /  发表于:2020-4-17 16:17:44
5#
test.zip (576 Bytes, 下载次数: 174)
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-4-17 23:45:58
6#
问题收到,有结果给您回复
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-20 11:12:06
7#
本帖最后由 dexteryao 于 2020-4-20 11:20 编辑

您好,通过您的json看到,表格默认的居中样式已经设置成功,在其他单元格输入内容是垂直居中的。A1这个单元格没有垂直居中,是和SpreadJS里表现不一致,这个发现json里有个无用的Style对象,这个需要深入调查下,看什么导致的样式没有继承。SJS-4157
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部