## addComplexTable('name值', '标题', '表格数据'[, '是否有表头'])
标识符:`complexTable`
在表单中显示普通表格,用于展示数据,不可编辑。
```
$table_data = [
['姓名', '性别', '年龄'],
['张三', '男', '45'],
['李四', '男', '40'],
];
return ZBuilder::make('form')
->setPageTitle('新增') // 设置页面标题
->addFormItems([ // 批量添加表单项
['complexTable', 'list_user', '客户列表', $table_data]
])
->fetch();
```
效果:
![](https://img.kancloud.cn/d3/47/d34706c8b2a5633f6e393315fb9e74df_1027x188.png)
### 设置第一行为表头
```
$table_data = [
['姓名', '性别', '年龄'],
['张三', '男', '45'],
['李四', '男', '40'],
];
return ZBuilder::make('form')
->setPageTitle('新增') // 设置页面标题
->addFormItems([ // 批量添加表单项
['complexTable', 'list_user', '客户列表', $table_data, true]
])
->fetch();
```
效果:
![](https://img.kancloud.cn/1d/ae/1daedc217e5f0b0a15b7893cbb881b18_1017x182.png)
### 单独设置表头
```
$table_head = [
['姓名', '性别', '年龄']
];
$table_data = [
['张三', '男', '45'],
['李四', '男', '40'],
];
return ZBuilder::make('form')
->setPageTitle('新增') // 设置页面标题
->addFormItems([ // 批量添加表单项
['complexTable', 'list_user', '客户列表', $table_data, $table_head]
])
->fetch();
```
效果:
![](https://img.kancloud.cn/07/04/0704d169ddf63ecef74ab42967e00a28_1016x184.png)
### 单元格合并
在需要合并的单元格,设置横向和纵向合并数量,格式:单元格值[横向数:纵向数]
```
$table_data = [
['姓名[2]', '年龄'], // 姓名横向合并2个单元格,纵向默认1个
['张三', '男', '45'],
['李四', '男', '40'],
];
return ZBuilder::make('form')
->setPageTitle('新增') // 设置页面标题
->addFormItems([ // 批量添加表单项
['complexTable', 'list_user', '客户列表', $table_data, true]
])
->fetch();
```
效果:
![](https://img.kancloud.cn/16/2f/162f9c07ad1850a902db75e8189013e7_1020x187.png)
单独设置的表头也支持单元格合并
```
$table_head = [
['姓名[2]', '年龄'], // 姓名横向合并2个单元格,纵向默认1个
];
$table_data = [
['张三', '男', '45'],
['李四', '男', '40'],
];
return ZBuilder::make('form')
->setPageTitle('新增') // 设置页面标题
->addFormItems([ // 批量添加表单项
['complexTable', 'list_user', '客户列表', $table_data, $table_head]
])
->fetch();
```
纵向合并
```
$table_head = [
['姓名[2]', '年龄'], // 姓名横向合并2个单元格,纵向默认1个
];
$table_data = [
['张三', '男[1:2]', '45'],
['李四', '40'],
];
return ZBuilder::make('form')
->setPageTitle('新增') // 设置页面标题
->addFormItems([ // 批量添加表单项
['complexTable', 'list_user', '客户列表', $table_data, $table_head]
])
->fetch();
```
效果:
![](https://img.kancloud.cn/c2/40/c240773258aed5ef5ba27eb1568da2b5_1024x188.png)
比较复杂的表格
```
$table_data = [
['姓名[:2]', '张三[:2]', '性别', '男', '专业技术职务', '测试', '第一学历', '测试'],
['出生年月', '2019-01-01', '行政职务', '测试', '最后学历', '测试'],
['第一学历和最后学历
业时间、学校、专业[2]', '测试[6]'],
['主要从事工作与
研究方向[2]', '测试[6]'],
['行业企业兼职[2]', '测试[6]'],
['工作简历[2]', '测试[6]'],
['最具代表性的
教学科研成果[2]', '测试[6]'],
['目前承担的主要
教学工作(5项以内)[2]', '测试[6]'],
];
return ZBuilder::make('form')
->setPageTitle('新增') // 设置页面标题
->addFormItems([ // 批量添加表单项
['complexTable', 'list_user', '客户列表', $table_data, true]
])
->fetch();
```
![](https://img.kancloud.cn/3a/c3/3ac30dbe4d0032bb192a6ecd8790f3e9_1021x481.png)
>[danger] 注意,在设置单元格合并参数的时候,一定要弄清楚各个单元格占用的格数。
正常的表格是这样的
```
$table_data = [
['张三', '男', '45'],
['李四', '男', '40'],
];
```
如果想把性别“男”合并起来,那么在设置第一行张三的“男[1:2]”后,后一行的"男"就需要去掉,如:
```
$table_data = [
['张三', '男[1:2]', '45'],
['李四', '40'],
];
```
否则会合并不正确。
另外,下面两种设置方式是一样的:
```
$table_data = [
['张三', '男[1:2]', '45'],
];
$table_data = [
['张三', '男[:2]', '45'],
];
```
也就是说,如果是数字1,可以不写,下面两种也是一样的:
```
$table_data = [
['张三', '男[2]', '45'],
];
$table_data = [
['张三', '男[2:1]', '45'],
];
```
其他复杂的单元格合并方式要靠自己去摸索了。
### 单元格内显示表格
```
$table_inside = [
['序号', '成果名称', '等级及签发单位、时间', '本人署名位次'],
['1', 'a1', '2019-01-01', '1'],
['2', 'a2', '2019-01-01', '2'],
['3', 'a2', '2019-01-01', '3'],
'6:1' // 最后一个为字符串,用来设置所在单元格的合并,如果不需要合并则无需填写。
];
$table_data = [
['姓名[:2]', '张三[:2]', '性别', '男', '专业技术职务', '测试', '第一学历', '测试'],
['出生年月', '2019-01-01', '行政职务', '测试', '最后学历', '测试'],
['第一学历和最后学历
业时间、学校、专业[2]', '测试[6]'],
['主要从事工作与
研究方向[2]', '测试[6]'],
['行业企业兼职[2]', '测试[6]'],
['工作简历[2]', '测试[6]'],
['最具代表性的
教学科研成果[2]', $table_inside],
['目前承担的主要
教学工作(5项以内)[2]', '测试[6]'],
];
return ZBuilder::make('form')
->setPageTitle('新增') // 设置页面标题
->addFormItems([ // 批量添加表单项
['complexTable', 'list_user', '客户列表', $table_data, true]
])
->fetch();
```
效果:
![](https://img.kancloud.cn/32/61/32614158caf90a03e4934ec97392edc2_1021x607.png)