本帖最后由 Winny 于 2022-1-21 10:44 编辑
常见的表格产品对单元格设置水平对齐方式时,提供了“跨列居中”的水平对齐方式。这种居中方式,可以实现在不合并单元格的前提下,完成对同一行跨列的区域进行居中。这样视觉上内容处于跨列区域的中间,但其实本质上内容还处于最初的单元格上。
SpreadJSV15.0响应用户需求,也添加了“跨列居中”对齐方式,跨列居中的实现策略为:当一个范围被设置为“跨列居中”时,每个单元格将继续向右寻找对齐方式为“跨列居中”且值为空的连续单元格,最后将其内容放在所有单元格的中心。本文会详细介绍SpreadJS在UI行为及代码层面如何使用“跨列居中”对齐方式。
1. UI行为设置“跨列居中”designer设置“跨列居中”;
2. 代码设置“跨列居中”。
- ///* enum GC.Spread.Sheets.HorizontalAlign
- /**
- * Specifies the horizontal alignment.
- * @enum {number}
- * @example
- * //This example uses the HorizontalAlign type.
- * var style = new GC.Spread.Sheets.Style();
- * style.font = "8pt Arial";
- * style.hAlign = GC.Spread.Sheets.HorizontalAlign.centerContinuous;
- * activeSheet.setStyle(1,1,style,GC.Spread.Sheets.SheetArea.viewport);
- * activeSheet.getCell(1,1).value("B2");
- */
- export enum HorizontalAlign {
- /**
- * Indicates that the cell content is left-aligned.
- */
- left = 0,
- /**
- * Indicates that the cell content is centered.
- */
- center = 1,
- /**
- * Indicates that the cell content is right-aligned.
- */
- right = 2,
- /**
- * Indicates that the horizontal alignment is based on the value type.
- */
- general = 3,
- /**
- * Indicates that the cell content is center across selection.
- */
- centerContinuous = 4
- <font color="#ff0000">}</font>
复制代码 “跨列居中”对于某些特殊情况的处理策略如下:
1. 如果“跨列居中”范围内的内容超过范围宽度,内容会向两侧溢出;
2. “跨列居中”会影响单元格内容的宽度,如果单元格设置了自动换行(wordWrap=True),则区域宽度=“跨列居中”范围宽度-边距。该宽度属性会强制单元格在“跨列居中”范围中心边界内对文字换行;
3.“跨列居中”会影响单元格内容的宽度,如果设置了“缩小文本适应单元格宽度“(shrinkToFit=True),则区域宽度=“跨列居中”范围宽度-边距,该宽度属性会用于计算实际字体的大小;
4.对于会计数字格式,”跨列居中“不会直接将文本居中,而是将符号和值延伸到两侧;
5. “跨列居中”对富文本无效;
6.“跨列居中”会使单元格缩进锁定为0;
7."跨列居中"会将文本方向锁定为水平方向(0);
8.合并单元格无法使用"跨列居中",会被替换为"居中对齐";
9. 单元格内容过多以省略符显示时,设置"跨列居中"无效。
|