如何使用PlantUML绘制互连数据表并去除多余外框
PlantUML 无外框互连数据表实现方案
你不需要依赖object组件承载表格,通过透明边框的矩形容器+内置Creole表格的组合,就能实现无多余外框、保留数据表标题、支持直接连线的效果,具体操作如下:
- 全局通过
skinparam配置矩形容器样式:将边框设为透明、边框宽度设为0、关闭阴影、背景设为透明,彻底去掉容器自带的外框 - 用
rectangle "表名" as 表别名的格式定义每个数据表,容器内部直接放你之前写的Creole格式表格内容,容器的名称会自动作为数据表标题显示在表格上方 - 表之间的关联连线、布局隐藏线写法和你之前用
object时完全一致,不需要修改关系逻辑
可直接运行的完整代码
@startuml ' 配置容器样式:移除所有多余外框、阴影 skinparam rectangle { BorderColor transparent BorderThickness 0 Shadowing false BackgroundColor transparent Padding 2 ' 控制标题和表格的间距,可按需调整 } ' 定义Organization表 rectangle "Organization" as Organization { <#lightblue,#black>|= organizationNo |= name |= address | <#white>| OS07 | Sphereways | 22 Rabbit Rd, London | <#white>| OO7 | Orco | 16 Adam St, Nuremberg | <#white>| OC11 | Cruxolutions | 163 Olga St, Budapest | } ' 定义OrgCust关联表 rectangle "OrgCust" as OrgCust { <#lightblue,#black>|= organizationNo |= customerNo | <#white>| OS07 | CM67 | <#white>| OS7 | CM67 | <#white>| OC11 | CH11 | } ' 定义Customer表 rectangle "Customer" as Customer { <#lightblue,#black>|= customerNo |= fName |= lName |= creditLimit | <#white>| CJ13 | John | Jeschke | 5000 | <#white>| CK37 | Nina | Knabel | 2000 | <#white>| CM67 | Felix | Magee | 1300 | <#white>| CH11 | Lilla | Hopka | 3000 | } ' 布局控制+关联关系 Organization -[hidden]-> OrgCust OrgCust -[hidden]-> Customer Organization ||--o{ OrgCust Customer ||--o{ OrgCust @enduml
预期效果参考:
上述代码渲染后和参考效果完全匹配:仅显示表格内容、顶部表名、表间关联线,没有object组件自带的多余外框干扰。如果需要调整标题和表格的间距,修改skinparam里的Padding参数值即可。
内容的提问来源于stack exchange,提问作者ald mike
相关产品推荐
相关产品推荐


