找回密码
 立即注册

QQ登录

只需一步,快速开始

Winny

超级版主

141

主题

263

帖子

1696

积分

超级版主

Rank: 8Rank: 8

积分
1696
Winny
超级版主   /  发表于:2022-1-12 11:35  /   查看:2402  /  回复:0
本帖最后由 Winny 于 2022-1-21 10:44 编辑

        常见的表格产品对单元格设置水平对齐方式时,提供了“跨列居中”的水平对齐方式。这种居中方式,可以实现在不合并单元格的前提下,完成对同一行跨列的区域进行居中。这样视觉上内容处于跨列区域的中间,但其实本质上内容还处于最初的单元格上。
        SpreadJSV15.0响应用户需求,也添加了“跨列居中”对齐方式,跨列居中的实现策略为:当一个范围被设置为“跨列居中”时,每个单元格将继续向右寻找对齐方式为“跨列居中”且值为空的连续单元格,最后将其内容放在所有单元格的中心。本文会详细介绍SpreadJS在UI行为及代码层面如何使用“跨列居中”对齐方式。
1. UI行为设置“跨列居中”designer设置“跨列居中”; image.png11691893.png

2. 代码设置“跨列居中”。
  1. ///* enum GC.Spread.Sheets.HorizontalAlign
  2. /**
  3. * Specifies the horizontal alignment.
  4. * @enum {number}
  5. * @example
  6. * //This example uses the HorizontalAlign type.
  7. * var style = new GC.Spread.Sheets.Style();
  8. * style.font = "8pt Arial";
  9. * style.hAlign = GC.Spread.Sheets.HorizontalAlign.centerContinuous;
  10. * activeSheet.setStyle(1,1,style,GC.Spread.Sheets.SheetArea.viewport);
  11. * activeSheet.getCell(1,1).value("B2");
  12. */
  13. export enum HorizontalAlign {
  14.     /**
  15.      *  Indicates that the cell content is left-aligned.
  16.      */
  17.     left = 0,
  18.     /**
  19.      *  Indicates that the cell content is centered.
  20.      */
  21.     center = 1,
  22.     /**
  23.      *  Indicates that the cell content is right-aligned.
  24.      */
  25.     right = 2,
  26.     /**
  27.      *  Indicates that the horizontal alignment is based on the value type.
  28.      */
  29.     general = 3,
  30.     /**
  31.      *  Indicates that the cell content is center across selection.
  32.      */
  33.     centerContinuous = 4
  34. <font color="#ff0000">}</font>
复制代码
“跨列居中”对于某些特殊情况的处理策略如下:
1. 如果“跨列居中”范围内的内容超过范围宽度,内容会向两侧溢出;
2. “跨列居中”会影响单元格内容的宽度,如果单元格设置了自动换行(wordWrap=True),则区域宽度=“跨列居中”范围宽度-边距。该宽度属性会强制单元格在“跨列居中”范围中心边界内对文字换行;
3.“跨列居中”会影响单元格内容的宽度,如果设置了“缩小文本适应单元格宽度“(shrinkToFit=True),则区域宽度=“跨列居中”范围宽度-边距,该宽度属性会用于计算实际字体的大小;
4.对于会计数字格式,”跨列居中“不会直接将文本居中,而是将符号和值延伸到两侧;
5. “跨列居中”对富文本无效;
6.“跨列居中”会使单元格缩进锁定为0;
7."跨列居中"会将文本方向锁定为水平方向(0);
8.合并单元格无法使用"跨列居中",会被替换为"居中对齐";
9. 单元格内容过多以省略符显示时,设置"跨列居中"无效。



评分

参与人数 1满意度 +5 收起 理由
bakefish + 5

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部