logo

S2

  • 使用文档
  • API 文档
  • 图表示例
  • 在线体验
  • 更新日志
  • 所有产品antv logo arrow
  • 2.x
  • 简介
  • 快速上手
  • 基础教程
    • 基本概念
      Updated
    • 表形态
      • 透视表
        Updated
      • 明细表
        Updated
    • 字段标记
      Updated
    • 小计总计
    • 排序
      • 基础排序
        Updated
      • 组内排序
        Updated
    • 主题配置
      Updated
    • Tooltip
      Updated
    • 数据格式化
      New
    • 多行文本
      New
    • 国际化
    • 分页
      New
  • 进阶教程
    • 单元格渲染类型
      • 链接
      • 图片
        New
      • 视频
        New
      • 迷你图表
      • 结合@antv/g2
      • 自定义渲染
    • 自定义
      • 自定义 Hook
        Updated
      • 自定义行列头分组
        New
      • 自定义 Icon
        Updated
      • 自定义单元格对齐方式
        Updated
      • 自定义单元格宽高
        Updated
      • 自定义排序操作
        Updated
      • 自定义折叠/展开节点
        New
    • 交互
      • 基础交互
        Updated
      • 自定义交互
      • 隐藏列头
        Updated
      • 行列宽高调整
        Updated
      • 合并单元格
      • 滚动
        Updated
      • 复制与导出
        New
      • 高亮/选中单元格
        New
    • 分析组件
      • 简介
        New
      • 高级排序
        Updated
      • 维度切换
        Updated
      • 导出
        Updated
      • 分页
        Updated
      • 维度下钻
        Updated
    • 表格组件
      • 编辑表
      • 趋势分析表
        Updated
    • 高清适配
      Updated
    • 获取表格实例
    • 表格自适应
    • 获取单元格数据
      Updated
    • 注册 AntV/G 插件
      New
    • 透视组合图
      Experimental
    • Vue 3.0 组件 (停止维护)
  • 扩展阅读
    • 数据流处理
      • 透视表
      • 明细表
    • 布局流程
      • 透视表
      • 明细表
    • 性能介绍
      Updated
  • 贡献指南
  • 常见问题
  • S2 2.0 升级指南

多行文本

上一篇
数据格式化
下一篇
国际化

Resources

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

注意

阅读本章前,请确保已经阅读了 基础教程 和 主题配置 等章节,并对 AntV/G 渲染引擎有所了解。

在基于 DOM 的 表格中,我们可以写一些简单的 CSS 属性, 就可以实现文本的自动换行, 溢出隐藏等特性,因为浏览器已经帮我们计算好了,而在 Canvas 中,文本是否溢出, 文字换行坐标计算, 多行文本高度自适应 等特性都需要自行实现。

得益于 AntV/G 5.0 渲染引擎的升级,S2 2.0 现在只需要简单的配置即可支持多行文本的渲染,支持自动换行。

使用

S2 内部适配了 AntV/G 6.0 的 多行布局能力, 可以根据文本高度自适应单元格高度,并支持如下配置:

提示

具体参数请跳转 AntV/G 官网查看.

  • maxLines: 最大行数,一个具体的正整数 (支持配置为 Infinity), 文本超出后将被截断 (默认值为 1)。
  • wordWrap: 是否开启自动折行,(默认值为 false).
  • textOverflow:
    • 'clip': 直接截断文本。
    • 'ellipsis': 使用 ... 表示被截断的文本。
    • 自定义字符串,使用它表示被截断的文本。

在 S2 中,通过 Style 即可实现渲染多行文本,当文本自动换行后,如果小于单元格高度,则会自动调整。

注意

数据单元格 (dataCell) 如果展示的是 数字 则不建议换行,容易产生歧义。

const cellTextWordWrapStyle = {
// 最大行数,文本超出后将被截断
maxLines: 2,
// 文本是否换行
wordWrap: true,
// 可选项见:https://g.antv.antgroup.com/api/basic/text#textoverflow
textOverflow: 'ellipsis',
};
const s2Options = {
style: {
seriesNumberCell: cellTextWordWrapStyle,
colCell: cellTextWordWrapStyle,
cornerCell: cellTextWordWrapStyle,
rowCell: cellTextWordWrapStyle,
// 数值不建议换行,容易产生歧义
dataCell: cellTextWordWrapStyle,
},
};

效果

透视表

pivot
查看示例

明细表

table
查看示例

根据换行符换行

除了根据文本长度换行外,S2 还支持根据换行符 \n 换行。查看示例

{
"province": "浙江\n浙江",
"city": "杭州\n杭州\n杭州",
"type": "纸张\n纸张\n纸张",
"price": 2,
"cost": 20,
}

以上述数据为例,可以根据文本中换行符的数量,指定 maxLines 的值。 如果文本是动态的,则可以指定为一个较大的数值,如 maxLines: 99 或者 maxLines: Infinity, 从而实现高度自适应的效果。

const s2Options = {
style: {
rowCell: {
maxLines: Infinity,
},
},
};

高度优先级

提示

开启文本自动换行后,默认会根据文本实际的高度调整对应单元格的高度。

  1. 如果配置了 自定义单元格高度, 则高度自适应失效,以自定义的宽高为准。
  2. 默认根据 maxLines 来计算单元格高度,当 手动拖拽调整高度 或存在 自定义单元格高度 时,为保证展示合理性,会根据当前文本行高计算出能展示的最大行数,覆盖默认的 maxLines 配置。

获取单元格文本状态

如果想获取一些特定状态,如 文本最大宽度, 文本是否换行, 文本是否溢出, 可以在拿到 单元格信息 后,调用单元格基类的方法,具体请 查看 API。

cell.getActualText()
cell.getOriginalText()
cell.isTextOverflowing()