# Pbootcms如何实现不同的自定义表单分别可导出不同的表格

*Published:* 2023-11-16
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2023年11月16日，已超过 180天没有更新



适用于 [PbootCMS](https://www.xarjtc.com/tag/pbootcms "查看PbootCMS此标签更多文章") V2.0.3-20191025  
其他版本请自行对照修改  
不同的自定义[表单](https://www.xarjtc.com/tag/%e8%a1%a8%e5%8d%95 "查看表单此标签更多文章")分别可导出不同的表格  
作者：Appeal  
作者 QQ：1310030991

完整demo下载：

[自定义表单导出excl](https://www.xarjtc.com/wp-content/uploads/2023/11/自定义表单导出excl.zip)

**第一步：**

找到 “/ core / extend / excel”文件夹，增加 Excel.php 文件

Excel.php文件下载：

[excel.php](https://www.xarjtc.com/wp-content/uploads/2023/11/excel.php_.zip)

**第二步：**

找到“/ apps / admin / model / content / FormModel.php”文件，

在合适的位置（ 例如：第 13 行的 class FormModel extends Model { 后面 ）添加以下代码：

```
public function getExcelList($id)
    {
        $form = parent::table('ay_form')->where("fcode=$id")->find();
        $diy_list = parent::table("{$form->table_name}")->select();
        return $diy_list;    
    } 
  public function getExcelListname($id)
    {
        $form = parent::table('ay_form_field')->where("fcode=$id")->field('name,description')->select();        
        return $form;    
    }
```

[![](https://www.xarjtc.com/wp-content/uploads/2023/11/8nj1sy6pyg.png)](https://www.xarjtc.com/wp-content/uploads/2023/11/8nj1sy6pyg.png)

**第三步：**

找到“/ apps / admin / controller / content / FormController.php”文件，

在第 12 行

```
use app\admin\model\content\FormModel;
```

后面增加代码如下，

```
core\extend\excel\Excel;
```

在第 331 行，也就是最后一个 “} ”之前增加以下代码：

```
public function export()
    {
        $id = $_GET['id'];        
        $Sheet_name = "表单";
$field_name_list = $this->model->getExcelListname($id);
$Sheet_name_arr = array();
$Sheet_field_arr = array();
if(!empty($field_name_list)) {
foreach ($field_name_list as $k => $v) {
$Sheet_name_arr[$k] = $v->description;
$Sheet_field_arr[$k] = $v->name;
}
}
 $message = $this->model->getExcelList($id);
        $xls = new Excel($Sheet_name);
        $xls->worksheets[$Sheet_name]->addRow($Sheet_name_arr); 
        foreach($message as $val){
            if($val->status == 1){
                $status = '已处理';
            }else{
                $status = '未处理';
            }           
            $row = array();
            foreach ($Sheet_field_arr as $field) {
            if (!in_array($field, ['id','create_time'])) {
            $row[] = $val->$field;
            }
            }
            $xls->worksheets[$Sheet_name]->addRow($row);
        }        
        $Test_name = $Sheet_name . date("Y-m-d H:i:s", time());
        $xls->generate($Test_name);
    }
```

[![](https://www.xarjtc.com/wp-content/uploads/2023/11/mxe84etkfv.png)](https://www.xarjtc.com/wp-content/uploads/2023/11/mxe84etkfv.png)

**第四步：**

找到“/ apps / admin / view / default / content / form.html”文件，

在第 113 行后面添加以下代码：

```
<button type="submit" name="submit" onclick="return exportExcelList();" class="layui-btn">导出</button>
<script>
function exportExcelList(){
window.open("{url./admin/Form/export&id='.[$form->fcode].'}", "_blank");   
}
</script>
```

[![](https://www.xarjtc.com/wp-content/uploads/2023/11/bmao0qbccf.png)](https://www.xarjtc.com/wp-content/uploads/2023/11/bmao0qbccf.png)