联系官方销售客服

1835022288

028-61286886

分享经验 版主:论坛审计组
基于PHPoffice类去做excel表格数据导入导出
类型:迅睿CMS 更新时间:2024-04-11 09:24:05

基于PHPoffice类去做excel表格数据导入导出,可以导出图片到excel,本人亲测一次性导入6000+条简单数据没什么问题,很快,在多就没试过

前端效果如下

导入,要点击确定才会进行导入数据

image

导出,如果不选择数据会提示选择数据然后进行导出

imageimage


第一步,下载上传的附件并将文件解压到你的项目中,具体目录如下图所示。入不放心我上传的附件,可自行安装composer进行下载地址如下

https://phpspreadsheet.readthedocs.io/en/stable/

image


PHPoffice


PS:在导入Excel的时候,要使用到文件上传接口,所以要现在后台创建一个文件上传字段,完成之后,要看一下上传接口对应的参数拿过来,然后替换我对应文件上传接口中的参数,这个文件上传字段不要删除,如果不想要在后台跟前台显示可以选择隐藏。

这是我使用的文件上传接口案列

http://census.cc/index.php?s=api&c=file&siteid=1&m=upload&p=020424c201c395dba90596754de3d341&fid=45


如何查看创建字段的上传接口以及参数

  1. 进入到后台添加页面,点f12进入到network中然后进行上传文件,上传之后,接口会在这里显示,打开之后,拿到对应的参数,并填入到,我写的ajax文件上传接口中对应的参数即可


image


第二步,在页面中添加导入导出按钮,我是加在对应模块的头部

image

代码如下:

image

image

前端js部分代码:

<script type="text/javascript">
    if (App.isAngularJsApp() === false) {
        jQuery(document).ready(function() {
            if (jQuery().datepicker) {
                $('.date-picker').datepicker({
                    rtl: App.isRTL(),
                    orientation: "left",
                    autoclose: true
                });
            }
        });
    }
    function dr_module_delete() {
        var url = '{dr_url(APP_DIR.'/home/del')}&is_ajax=1';
        var width = '50%';
        var height = '60%';
        if (is_mobile_cms == 1) {
            width = height = '90%';
        }
        var data = $("#myform").serialize();
        layer.open({
            type: 2,
            title: '{dr_lang('删除确认')}',
            shadeClose: true,
            shade: 0,
            area: [width, height],
            btn: [lang['ok']],
            yes: function(index, layero){
                var body = layer.getChildFrame('body', index);
                $(body).find('.form-group').removeClass('has-error');
                // 延迟加载
                var loading = layer.load(2, {
                    shade: [0.3,'#fff'], //0.1透明度的白色背景
                    time: 5000
                });
                $.ajax({type: "POST",dataType:"json", url: url, data: $(body).find('#myform').serialize(),
                    success: function(json) {
                        layer.close(loading);
                        if (json.code == 1) {
                            layer.close(index);
                            setTimeout("window.location.reload(true)", 2000)
                        } else {
                            $(body).find('#dr_row_'+json.data.field).addClass('has-error');
                        }
                        dr_tips(json.code, json.msg);
                        return false;
                    },
                    error: function(HttpRequest, ajaxOptions, thrownError) {
                        dr_ajax_alert_error(HttpRequest, ajaxOptions, thrownError);
                    }
                });
                return false;
            },
            content: url+'&'+data
        });
    }

    function dr_module_excelExport() {
        var arr = $("#myform").serializeArray();
        if (arr.length <= 2){
            layer.msg('请选择数据再进行导出操作');
            return;
        }
        var info = [];

        arr.forEach(function (data){
            if (data.name == 'ids[]') {
                info.push(data.value);
            }
        });
        $.ajax({
            type: "POST",
            dataType:"json",
            url: "{dr_url($uriprefix.'/dataExport')}",
            data: {
                'data': info,
                {csrf_token()} : "{csrf_hash()}"
            },
            success: function (data) {
                layer.open({
                    type: 1,
                    title: '{dr_lang('是否导出')}',
                    id: 'LAY_layuipro',
                    shadeClose: true,
                    shade: 0,
                    btn: ['确定','否'],
                    btnAlign: 'c' ,//按钮居中
                    yes: function(index, layero){
                        if (layero) {
                            self.location.href="{dr_url($uriprefix.'/excelExport')}&id="+data;
                            layer.close(index);
                        }else {
                            return false;
                        }
                    }
                });
            }
        });
    }
</script>
这段js放到最底部,记得要引用js文件
<script type="text/javascript" src="{THEME_PATH}from/layui/layui.js"></script>
<script>
    layui.use('upload', function(){
        var $ = layui.jquery
            ,upload = layui.upload;

        upload.render({
            elem: '#excelImport',
            url: '/index.php?s=api&c=file&siteid='+{SITE_ID}+'&m=upload&p=020424c201c395dba90596754de3d341&fid=45',
            accept: 'file',
            exts: 'xls|xlsx',
            field: "file_data",
            data: {
                file_data: function(){
                    return $('#excelImport').val();
                },
                {csrf_token()} : "{csrf_hash()}"
            },
            done: function(res){
                if(res.code == 1){
                    layer.open({
                        type: 1,
                        title: '{dr_lang('是否导入')}',
                        id: 'import',
                        shadeClose: true,
                        shade: 0,
                        btn: ['确定','否'],
                        btnAlign: 'c' ,//按钮居中
                        yes: function(index, layero){
                            if (layero) {
                                $.ajax({
                                    url: "{dr_url($uriprefix.'/excelImport')}",
                                    type: "POST",
                                    dataType: "json",
                                    data: {
                                        url: res.info.url,
                                        id: res.id,
                                        type: res.info.ext,
                                        {csrf_token()} : "{csrf_hash()}"
                                    },
                                    success: function(data){
                                        if (data.code == 1){
                                            layer.msg('<span style="color: #fff">信息导入成功!</span>');
                                        }
                                    },
                                    error: function(data){
                                        if (data.code == 0){
                                            layer.msg('<span style="color: #fff">信息导入失败!请从第'+data.total+'条开始导入!</span>');
                                        }
                                    }
                                });
                                layer.close(index);
                            }else {
                                return false;
                            }
                        }
                    });
                }else{
                    return layer.msg('<span style="color: #fff">上传失败,请重试!</span>');
                }
            }
        });
    });

</script>

html部分

<ul class="page-breadcrumb">
                    {$menu}
                    <li>
                        <link type="text/css" rel="stylesheet" href="{THEME_PATH}from/layui/css/layui.css" />
                        <div class="layui-upload">
                            <button type="button" style="background: #fff; color: #888; padding: 0 0" class="layui-btn layui-btn-normal" id="excelImport"><i class="fa fa-plus"></i>导入</button>
                            <i style="color: #DDDDDD" class="fa fa-circle"></i>
                        </div>
                    </li>
                    <li>
                        <a onclick="dr_module_excelExport()" id="excelExport" class="">
                            <i class="fa fa-minus"></i> 导出</a>
                        <i class="fa fa-circle"></i>
                    </li>
                </ul>

php部分

<?php namespace Phpcmf\Controllers\Admin;

    require 'vendor/autoload.php'; //写入口文件

    use PhpOffice\PhpSpreadsheet\Spreadsheet; //引入类,这三个都要引入

    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

    use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;

/**

 * 二次开发时可以修改本文件,不影响升级覆盖

 */



class Home extends \Phpcmf\Admin\Module

{



    //获取要导出的数据id并返回给ajax

    public function dataExport(){

        $arr = $_POST['data'];

        $data = implode(',',$arr);

        return json_encode($data);

    }

    //数据导出

    public function excelExport() {

        $id = $_GET['id'];

        $line = 0;



        $spreadsheet = new Spreadsheet();

        $image = new Drawing();



        $sheet = $spreadsheet->getActiveSheet();



        $sheet->setCellValueByColumnAndRow(1, 1, '户主关系');//这些数据对应excel的列信息

        $sheet->setCellValueByColumnAndRow(2, 1, '姓名');

        $sheet->setCellValueByColumnAndRow(3, 1, '证件名称');

        $sheet->setCellValueByColumnAndRow(4, 1, '证件号码');

        $sheet->setCellValueByColumnAndRow(5, 1, '籍贯');

        $sheet->setCellValueByColumnAndRow(6, 1, '年龄');

        $sheet->setCellValueByColumnAndRow(7, 1, '性别');

        $sheet->setCellValueByColumnAndRow(8, 1, '户籍地');

        $sheet->setCellValueByColumnAndRow(9, 1, '手机座机');

        $sheet->setCellValueByColumnAndRow(10, 1, '座机电话');

        $sheet->setCellValueByColumnAndRow(11, 1, '出生时间');

        $sheet->setCellValueByColumnAndRow(12, 1, '死亡时间');

        $sheet->setCellValueByColumnAndRow(13, 1, '是否低保');

        $sheet->setCellValueByColumnAndRow(14, 1, '是否享受生活救助');

        $sheet->setCellValueByColumnAndRow(15, 1, '是否暂住');

        $sheet->setCellValueByColumnAndRow(16, 1, '暂住地');

        $sheet->setCellValueByColumnAndRow(17, 1, '是否流动人口');

        $sheet->setCellValueByColumnAndRow(18, 1, '是否矫正人员');

        $sheet->setCellValueByColumnAndRow(19, 1, '是否涉毒人员');

        $sheet->setCellValueByColumnAndRow(20, 1, '是否残疾');

        $sheet->setCellValueByColumnAndRow(21, 1, '用人单位');

        $sheet->setCellValueByColumnAndRow(22, 1, '社保信息');

        $sheet->setCellValueByColumnAndRow(23, 1, '个人健康状况');

        $sheet->setCellValueByColumnAndRow(24, 1, '实际居住地');

        $sheet->setCellValueByColumnAndRow(25, 1, '实际居住详细地址');

        $sheet->setCellValueByColumnAndRow(26, 1, '照片');





        $styleArray = [

            'alignment' => [

                'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,

            ],

        ];



        //查询并获取要导出的数据

        $data = \Phpcmf\Service::M()->db->table(SITE_ID.'_census')

            ->select('

                relation,name,head,card_name,card_id,hometown,age,sex,domicile,phone,

                tel,birthday,deadtime,is_guarantee,is_assistance,is_residence,temporary,

                population,correction,is_poison,is_deformity,employer,shebaoxinxi,health,

                residence,address

            ')

            ->where('id in('.$id.')')

            ->get()->getResultArray();



        $relation = dr_field_options(16);

        $card_name = dr_field_options(19);

        $sex = dr_field_options(23);

        $is_guarantee = dr_field_options(30);

        $is_assistance = dr_field_options(31);

        $is_residence = dr_field_options(32);

        $population = dr_field_options(34);

        $correction = dr_field_options(35);

        $is_poison = dr_field_options(36);

        $is_deformity = dr_field_options(37);

        $shebaoxinxi = dr_field_options(39);

        $health = dr_field_options(40);



        //通过循环去匹配数据

        for ($i = 0; $i < count($data); $i++) {

            $line = $i + 2;//代表从第几行开始



            //$sheet->setCellValueByColumnAndRow(1)中的1,2,3代表上面的那一列

            $sheet->setCellValueByColumnAndRow(1, $line, $relation[$data[$i]['relation']]);

            $sheet->setCellValueByColumnAndRow(2, $line, $data[$i]['name']);

            $sheet->setCellValueByColumnAndRow(3, $line, $card_name[$data[$i]['card_name']]);

            $sheet->setCellValueByColumnAndRow(4, $line, $data[$i]['card_id']);

            $sheet->setCellValueByColumnAndRow(5, $line, $data[$i]['hometown']);

            $sheet->setCellValueByColumnAndRow(6, $line, $data[$i]['age']);

            $sheet->setCellValueByColumnAndRow(7, $line, $sex[$data[$i]['sex']]);

            $sheet->setCellValueByColumnAndRow(8, $line, $data[$i]['domicile']);

            $sheet->setCellValueByColumnAndRow(9, $line, $data[$i]['phone']);

            $sheet->setCellValueByColumnAndRow(10, $line, $data[$i]['tel']);

            $sheet->setCellValueByColumnAndRow(11, $line, dr_date($data[$i]['birthday'],'Y-m-m H:i:s'));

            $sheet->setCellValueByColumnAndRow(12, $line, dr_date($data[$i]['deadtime'],'Y-m-m H:i:s'));

            $sheet->setCellValueByColumnAndRow(13, $line, $is_guarantee[$data[$i]['is_guarantee']]);

            $sheet->setCellValueByColumnAndRow(14, $line, $is_assistance[$data[$i]['is_assistance']]);

            $sheet->setCellValueByColumnAndRow(15, $line, $is_residence[$data[$i]['is_residence']]);

            $sheet->setCellValueByColumnAndRow(16, $line, $data[$i]['temporary']);

            $sheet->setCellValueByColumnAndRow(17, $line, $population[$data[$i]['population']]);

            $sheet->setCellValueByColumnAndRow(18, $line, $correction[$data[$i]['correction']]);

            $sheet->setCellValueByColumnAndRow(19, $line, $is_poison[$data[$i]['is_poison']]);

            $sheet->setCellValueByColumnAndRow(20, $line, $is_deformity[$data[$i]['is_deformity']]);

            $sheet->setCellValueByColumnAndRow(21, $line, $data[$i]['employer']);

            $sheet->setCellValueByColumnAndRow(22, $line, $shebaoxinxi[$data[$i]['shebaoxinxi']]);

            $sheet->setCellValueByColumnAndRow(23, $line, $health[$data[$i]['health']]);

            $sheet->setCellValueByColumnAndRow(24, $line, dr_linkagepos('address', $data[$i]['residence'], ' - '));

            $sheet->setCellValueByColumnAndRow(25, $line, $data[$i]['address']);



            $url =  parse_url(dr_thumb($data[$i]['head']));//获取图片对应的地址



            //使用图片导出类

            $drawing[$line] = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();

            $drawing[$line]->setName('头像');

            $drawing[$line]->setDescription('头像');

            $drawing[$line]->setPath('.'.$url['path']);

            $drawing[$line]->setWidth(100);

            $drawing[$line]->setHeight(100);

            $drawing[$line]->setCoordinates('Z'.$line);//z代表某一咧

            $drawing[$line]->setOffsetX(0);

            $drawing[$line]->setOffsetY(0);

            $drawing[$line]->setWorksheet($spreadsheet->getActiveSheet());

            $spreadsheet->getActiveSheet()->getRowDimension($line)->setRowHeight(100);//设置高度

        }



        $filename = '户籍信息管理表('.date('YmdHis',SYS_TIME).').xlsx';//导出表格名称

        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

        header('Content-Disposition: attachment;filename="'.$filename.'"');

        header('Cache-Control: max-age=0');



        //设置样式

        $spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(12);

        $spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(12);

        $spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(15);

        $spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(25);

        $spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(15);

        $spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(5);

        $spreadsheet->getActiveSheet()->getColumnDimension('G')->setWidth(5);

        $spreadsheet->getActiveSheet()->getColumnDimension('H')->setWidth(15);

        $spreadsheet->getActiveSheet()->getColumnDimension('I')->setWidth(15);

        $spreadsheet->getActiveSheet()->getColumnDimension('J')->setWidth(15);

        $spreadsheet->getActiveSheet()->getColumnDimension('K')->setWidth(18);

        $spreadsheet->getActiveSheet()->getColumnDimension('L')->setWidth(18);

        $spreadsheet->getActiveSheet()->getColumnDimension('M')->setWidth(9);

        $spreadsheet->getActiveSheet()->getColumnDimension('N')->setWidth(17);

        $spreadsheet->getActiveSheet()->getColumnDimension('O')->setWidth(9);

        $spreadsheet->getActiveSheet()->getColumnDimension('P')->setWidth(35);

        $spreadsheet->getActiveSheet()->getColumnDimension('Q')->setWidth(13);

        $spreadsheet->getActiveSheet()->getColumnDimension('R')->setWidth(13);

        $spreadsheet->getActiveSheet()->getColumnDimension('S')->setWidth(13);

        $spreadsheet->getActiveSheet()->getColumnDimension('T')->setWidth(9);

        $spreadsheet->getActiveSheet()->getColumnDimension('U')->setWidth(35);

        $spreadsheet->getActiveSheet()->getColumnDimension('V')->setWidth(85);

        $spreadsheet->getActiveSheet()->getColumnDimension('W')->setWidth(13);

        $spreadsheet->getActiveSheet()->getColumnDimension('X')->setWidth(35);

        $spreadsheet->getActiveSheet()->getColumnDimension('Y')->setWidth(35);

        $spreadsheet->getActiveSheet()->getColumnDimension('Z')->setWidth(26);



        $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');

        $writer->save('php://output');

    }



    //表格导入

    public function excelImport() {

        $excel = parse_url($_POST['url']);

        $type = ucfirst($_POST['type']);

        $fileid = $_POST['id'];

        $this->db = \Config\Database::connect('default');



        $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($type);

        $reader->setReadDataOnly(TRUE);

        $spreadsheet = $reader->load('.'.$excel['path']); //载入excel表格



        $worksheet = $spreadsheet->getActiveSheet();

        $highestRow = $worksheet->getHighestRow(); // 总行数

        $highestColumn = $worksheet->getHighestColumn(); // 总列数

        $highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn); // e.g. 5



        $lines = $highestRow - 1;

        if ($lines <= 0) {

            exit('Excel表格中没有数据');

        }



        $sql = "INSERT INTO 'dr_".SITE_ID."_census' ('relation','name','head','card_name','card_id','hometown','age','sex','domicile','phone',

                'tel','birthday','deadtime','is_guarantee','is_assistance','is_residence','temporary',

                'population','correction','is_poison','is_deformity','employer','shebaoxinxi','health',

                'residence','address') VALUES ";

        $data = [];



        $relation = dr_field_options(16);

        $card_name = dr_field_options(19);

        $sex = dr_field_options(23);

        $is_guarantee = dr_field_options(30);

        $is_assistance = dr_field_options(31);

        $is_residence = dr_field_options(32);

        $population = dr_field_options(34);

        $correction = dr_field_options(35);

        $is_poison = dr_field_options(36);

        $is_deformity = dr_field_options(37);

        $shebaoxinxi = dr_field_options(39);

        $health = dr_field_options(40);



        //获取表格中的数据

        for ($row = 0; $row < $lines; $row++) {

            $data[$row]['url'] = $worksheet->getCellByColumnAndRow(1, $row+2)->getValue();

            foreach ($relation as $key => $re) {

                if ($re === $worksheet->getCellByColumnAndRow(2, $row+2)->getValue()) {

                    $data[$row]['relation'] = $key;

                }

            }

            $data[$row]['name'] = $worksheet->getCellByColumnAndRow(3, $row+2)->getValue();

            foreach ($card_name as $key => $ca) {

                if ($ca === $worksheet->getCellByColumnAndRow(4, $row+2)->getValue()) {

                    $data[$row]['card_name'] = $key;

                }

            }

            $data[$row]['card_id'] = $worksheet->getCellByColumnAndRow(5, $row+2)->getValue();

            $data[$row]['hometown'] = $worksheet->getCellByColumnAndRow(6, $row+2)->getValue();

            $data[$row]['age'] = $worksheet->getCellByColumnAndRow(7, $row+2)->getValue();

            foreach ($sex as $key => $se) {

                if ($se === $worksheet->getCellByColumnAndRow(8, $row+2)->getValue()) {

                    $data[$row]['sex'] = $key;

                }

            }

            $data[$row]['domicile'] = $worksheet->getCellByColumnAndRow(9, $row+2)->getValue();

            $data[$row]['phone'] = $worksheet->getCellByColumnAndRow(10, $row+2)->getValue();

            $data[$row]['tel'] = $worksheet->getCellByColumnAndRow(11, $row+2)->getValue();

            $data[$row]['birthday'] = strtotime($worksheet->getCellByColumnAndRow(12, $row+2)->getValue());

            $data[$row]['deadtime'] = strtotime($worksheet->getCellByColumnAndRow(13, $row+2)->getValue());

            foreach ($is_guarantee as $key => $is_gu) {

                if ($is_gu === $worksheet->getCellByColumnAndRow(14, $row+2)->getValue()) {

                    $data[$row]['is_guarantee'] = $key;

                }

            }

            foreach ($is_assistance as $key => $is_as) {

                if ($is_as === $worksheet->getCellByColumnAndRow(15, $row+2)->getValue()) {

                    $data[$row]['is_assistance'] = $key;

                }

            }

            foreach ($is_residence as $key => $is_re) {

                if ($is_re === $worksheet->getCellByColumnAndRow(16, $row+2)->getValue()) {

                    $data[$row]['is_residence'] = $key;

                }

            }

            $data[$row]['temporary'] = $worksheet->getCellByColumnAndRow(17, $row+2)->getValue();

            foreach ($population as $key => $po) {

                if ($po === $worksheet->getCellByColumnAndRow(18, $row+2)->getValue()) {

                    $data[$row]['population'] = $key;

                }

            }

            foreach ($correction as $key => $co) {

                if ($co === $worksheet->getCellByColumnAndRow(19, $row+2)->getValue()) {

                    $data[$row]['correction'] = $key;

                }

            }

            foreach ($is_poison as $key => $is_po) {

                if ($is_po === $worksheet->getCellByColumnAndRow(20, $row+2)->getValue()) {

                    $data[$row]['is_poison'] = $key;

                }

            }

            foreach ($is_deformity as $key => $is_de) {

                if ($is_de === $worksheet->getCellByColumnAndRow(21, $row+2)->getValue()) {

                    $data[$row]['is_deformity'] = $key;

                }

            }

            $data[$row]['employer'] = $worksheet->getCellByColumnAndRow(22, $row+2)->getValue();

            foreach ($shebaoxinxi as $key => $she) {

                if ($she === $worksheet->getCellByColumnAndRow(23, $row+2)->getValue()) {

                    $data[$row]['shebaoxinxi'] = $key;

                }

            }

            foreach ($health as $key => $he) {

                if ($he === $worksheet->getCellByColumnAndRow(24, $row+2)->getValue()) {

                    $data[$row]['health'] = $key;

                }

            }

            $address = explode(' - ',$worksheet->getCellByColumnAndRow(25, $row+2)->getValue());

            foreach ($address as $add) {}

            $area = \Phpcmf\Service::M()->db->table('linkage_data_1')->where('name', $add)->get()->getResultArray();

            $data[$row]['residence'] = $area[0]['id'];

            $data[$row]['address'] = $worksheet->getCellByColumnAndRow(26, $row+2)->getValue();

            $data[$row]['head'] = $worksheet->getCellByColumnAndRow(27, $row+2)->getValue();

            $data[$row]['catid'] = 1;

            $data[$row]['inputip'] = \Phpcmf\Service::L('input')->ip_address();

            $data[$row]['inputtime'] = SYS_TIME;

            $data[$row]['updatetime'] = SYS_TIME;

        }

        //将从Excel表格中获取到的数据插入到数据库中

        foreach ($data as $key => $da){

            if ($da['url'] == null || $da['url'] == ' '){

                $da['fid'] = 0;

                $info = $this->db->table(SITE_ID.'_census')->insert($da);

                if ($info){

                    $fid = $this->db->insertID();

                    $card_id = $da['card_id'];

                    if ($info) {

                        $code = 1;

                    }else{

                        $code = 0;

                        $total = $key+2;

                    }

                }

            }else{

                if ($da['url'] == $card_id){

                    $da['fid'] = $fid;

                    $da['url'] = ' ';

                    $info = $this->db->table(SITE_ID.'_census')->insert($da);

                    if ($info) {

                        $code = 1;

                    }else{

                        $code = 0;

                        $total = $key+2;

                    }

                }

            }

        }

        if ($info) {

            \Phpcmf\Service::M('Attachment')->file_delete($this->member['id'],$fileid);//删除附件,如果导入成功之后不想删除附件,删除这句话即可

            return json_encode(['code'=>$code]);

        }else {

            \Phpcmf\Service::M('Attachment')->file_delete($this->member['id'],$fileid);

            return json_encode(['code'=>$code],['total'=>$total]);

        }

    }

}


回帖
  • 琉惗
    #1楼    琉惗
    2020-02-26 02:26:06
    Chrome 0
    如需定制,可以加我QQ1191892256或者私聊我,随时有空,有什么问题也可以问我。顺便推广一下我的火车头采集插件,任何模块都可以导入,根据独立跟共享模块接口,分别可以获取所有模块的栏目,多模块,多文件,随机会员。需要的可以看看参考文档:《火车头内容采集》
  • 琉惗
    #2楼    琉惗
    2020-02-26 02:29:00
    Chrome 0
    • 火车头采集器

      火车头采集器,即装即用,支持所有模块,多文件采集,默认news模块,可以发布独立模块以及...

  • 丛林灰太狼
    #3楼    丛林灰太狼
    2020-02-26 11:36:50
    Chrome 0
    哈,这个牛逼,看下
  • 琉惗
    #4楼    琉惗
    2020-02-26 11:42:02
    Chrome 0
    开箱即用,粘贴复制就可以了,改一下里面要导出的字段就ok,图片也可以导出,看不懂可以问我,不过最好看一下手册,都有,用的时候,把html。js这些原样复制过去就可以了,后台也是,后台代码就需要改要导出的字段,其他的不要改丛林灰太狼
  • 丛林灰太狼
    #5楼    丛林灰太狼
    2020-02-26 11:44:19
    Chrome 0
    琉惗 php的 把导出字段修改为我自己的字段就可以了是吗?这个可以用于pos3不,哥们!
  • 琉惗
    #6楼    琉惗
    2020-02-26 11:46:49
    Chrome 0
    可以的,方法一样的,不管pos3跟讯睿都可以,前端不要改,就要改后端的那个数据查询方式,数据查询方式不一样,其他的一模一样
    image
    比如这样的方式,pos3就不一样的话就要改这样的方式就可以了
    丛林灰太狼
  • 丛林灰太狼
    #7楼    丛林灰太狼
    2020-02-26 11:53:01
    Chrome 0
    哈哈 多谢之,兄弟,我现在先试试,不懂在群里还是这么问?琉惗
  • 草木人
    #8楼    草木人
    2020-02-26 11:53:52
    Chrome 0
    厉害,学习学习
  • 琉惗
    #9楼    琉惗
    2020-02-26 11:59:32
    Chrome 0
    不懂可以加我QQ或者私聊我,我会给你说的1191892256丛林灰太狼
  • 丛林灰太狼
    #10楼    丛林灰太狼
    2020-02-26 12:01:48
    Chrome 0
    哈哈 我就是群里的UU,我有你QQ呢,兄弟!琉惗
  • 琉惗
    #11楼    琉惗
    2020-02-26 12:29:44
    Chrome 0
    好吧.丛林灰太狼
  • 昱宇
    #12楼    昱宇
    2020-02-26 13:47:23
    Chrome 0
    厉害,学习学习
  • 琉惗
    #13楼    琉惗
    2020-02-26 16:45:58
    Chrome 0
    这两个要删掉,是系统自己加上的,js部分改成这样
    ********此内容需要回复后才能看到********

    image

    image
  • 琉惗
    #14楼    琉惗
    2020-02-26 16:46:38
    Chrome 0
    self.location.href="{dr_url($uriprefix.'/excelExport')}&id="+data;
    js的改成这样
  • 琉惗
    #15楼    琉惗
    2020-02-26 16:47:33
    Chrome 0
    js改成这样.....系统会自己多加个东西......
    image
  • 丛林灰太狼
    #16楼    丛林灰太狼
    2020-02-26 19:29:30
    Chrome 0
    哈哈,楼主水平相当牛,关键是相当的热心,搞不懂的直接远程帮解决,非常感谢,建议可以独立,平时在群里也非常热心,建议有开发需求的朋友,需要外包的可以找他,哈哈!
  • 丛林灰太狼
    #17楼    丛林灰太狼
    2020-02-26 19:30:12
    Chrome 0
    建议可以独立成插件,少打几个字了 哈哈
    丛林灰太狼
  • 过把瘾
    #18楼    过把瘾
    2020-03-01 09:58:10
    Chrome 0
    厉害,学习学习
  • 湘西北的风
    #19楼    湘西北的风
    2020-03-01 10:10:59
    Chrome 0
    做成插件 ,很多人需要
  • 琉惗
    #20楼    琉惗
    2020-03-01 10:33:12
    Chrome 0
    哦,我觉得这个东西已经是可以用了,就看需要的人懒不懒愿不愿意改一下里面的要导出的字段就行了,你可以问问楼上的那个丛林森林狼。他已经会了,很简单,所以我觉得人人都可以自己做,就没做插件,不过马上就要做了,有客户需要.........湘西北的风
  • yunshui2011
    #21楼    yunshui2011
    2020-03-04 12:59:18
    Chrome 0
    不错 看看
  • 清萌网络科技
    #22楼    清萌网络科技
    2020-03-05 22:13:51
    Firefox 73.0 0
    本部分内容设定了隐藏,需要回复后才能看到,立即回复
  • 小风
    #23楼    小风
    2020-03-20 16:42:22
    Chrome 0
    学习一下看能不能用
  • 唉呦喂
    #24楼    唉呦喂
    2020-03-22 13:20:03
    华为手机 0
    太强大了
  • 秦
    #25楼    秦
    2020-03-27 11:24:39
    Chrome 0
    看看
  • 九天网络(JiuDay)
    #26楼    九天网络(JiuDay)
    2020-04-29 13:16:00
    Chrome 0
    本部分内容设定了隐藏,需要回复后才能看到,立即回复
  • 秦
    #27楼    秦
    2020-05-11 13:50:52
    Chrome 0
    666666
  • 梦幻
    #28楼    梦幻
    2020-05-12 17:39:22
    Chrome 0
    学习
  • kimi
    #29楼    kimi
    2020-05-22 21:47:14
    Chrome 0
    学习
  • 找寻知音
    #30楼    找寻知音
    2020-06-08 14:35:44
    华为手机 0
    谢谢分享
  • 小黄人 18html.com
    #31楼    小黄人 18html.com
    2020-06-08 15:11:44
    Chrome 0
    看看前端JS
  • iseeyo
    #32楼    iseeyo
    2020-06-17 01:44:53
    Chrome 0
    优秀,支持下开发者!
  • Supr
    #33楼    Supr
    2020-06-17 22:53:11
    Chrome 0
    这个插件在哪呢
  • csp6353963
    #34楼    csp6353963
    2020-06-24 03:07:51
    Chrome 0
    学习学习
  • 琉惗
    #35楼    琉惗
    2020-06-24 10:02:35
    Chrome 0
    Supr还没上架呢,就是基于模块的导入导出给你大概看看效果
    image

    image
  • Supr
    #36楼    Supr
    2020-06-27 11:07:30
    Chrome 0
    琉惗 你这个只是一张对应一个模块。如果有几十张不是要建立几十个模块???
  • 琉惗
    #37楼    琉惗
    2020-06-30 15:59:44
    Chrome 0
    Supr这个是一个模块对应好多表,就跟你后台添加数据一样,当然,单表导入也支持,如果你会单表导入就可以用单表,不会就可以用模块导入去做,就跟你发布文章是一样,很简单,多选,下拉,以及多联动,复选框,这些都会自己判断,你只需要选择要导入的栏目跟导入的字段就可以
  • Supr
    #38楼    Supr
    2020-07-01 21:56:36
    Chrome 0
    琉惗 一个模块 多张不同表 每张字段不同 这个可以?
  • maste
    #39楼    maste
    2020-07-02 09:29:16
    Chrome 0
    学习下
  • 好好活着
    #40楼    好好活着
    2020-07-05 12:59:17
    Chrome 0
    学习下
  • kevin1995
    #41楼    kevin1995
    2020-07-08 10:38:31
    Chrome 0
    学习下
  • kevin1995
    #42楼    kevin1995
    2020-07-08 10:49:42
    Chrome 0
    学习下
  • 琉惗
    #43楼    琉惗
    2020-07-08 14:16:58
    Chrome 0
    Supr可以啊
  • jinghuaai3
    #44楼    jinghuaai3
    2020-08-20 11:37:47
    Chrome 0
    学习了
  • jinghuaai3
    #45楼    jinghuaai3
    2020-08-20 13:04:39
    Chrome 0
    jinghuaai3 请问这个怎么安装,我卡在了在后台创建导入按钮了
  • 帝云网络
    #46楼    帝云网络
    2020-09-01 12:38:13
    Chrome 0
    你的导入导出插件不错
  • 琉惗
    #47楼    琉惗
    2020-09-10 14:41:49
    Chrome 0
    jinghuaai3 放在模版里面
  • 李志杰
    #48楼    李志杰
    2020-09-12 11:14:53
    Chrome 0
    学一学
  • 李志杰
    #49楼    李志杰
    2020-09-12 13:58:31
    Chrome 0
    学一学
  • 有一点爱
    #50楼    有一点爱
    2020-09-26 03:12:22
    Chrome 0
    能不能导出表单数据
  • 流浪的乞丐
    #51楼    流浪的乞丐
    2020-09-26 19:10:20
    小米手机 0
    学习
  • Mr.Wa
    #52楼    Mr.Wa
    2020-10-20 10:54:48
    Chrome 0
    学习一下
  • xspwyl
    #53楼    xspwyl
    2020-12-01 15:02:15
    Chrome 0
    刚接触 收藏 备用
  • 小白
    #54楼    小白
    2020-12-07 15:25:11
    Chrome 0
    这个是导出模块数据的,可以单独导出表单数据么?
  • 小白
    #55楼    小白
    2020-12-08 09:30:14
    Chrome 0
    丛林灰太狼 请问这个 census 文件夹是什么?
  • perweb
    #56楼    perweb
    2021-01-11 15:47:30
    Chrome 0
    学习了
  • 菜鸟一枚
    #57楼    菜鸟一枚
    2021-01-19 13:09:03
    Edge 0
    这个牛皮了
  • 菜鸟一枚
    #58楼    菜鸟一枚
    2021-01-19 18:46:45
    Edge 0
    琉惗 请问
    ********此内容需要回复后才能看到********
    这个文件该怎么写。。
  • 琉惗
    #59楼    琉惗
    2021-02-07 23:49:34
    Chrome 0
    菜鸟一枚 引用layui文件,去layui官网下载一个然后放进去引用就行
  • lin818
    #60楼    lin818
    2021-02-20 17:47:18
    Chrome 0
    厉害,学习学习
  • KOK
    #61楼    KOK
    2021-02-23 15:22:39
    Edge 0
    学习学习,感谢分享!!!
  • ba123456
    #62楼    ba123456
    2021-03-01 14:53:30
    Firefox 68.0 0
    学习下
  • ba123456
    #63楼    ba123456
    2021-03-01 14:53:51
    Firefox 68.0 0
    学习下
  • KOK
    #64楼    KOK
    2021-03-01 23:14:41
    Edge 0
    牛逼,感谢楼主分享。。。。。。。。。
  • Keep
    #65楼    Keep
    2021-04-14 09:16:28
    Firefox 87.0 0
    感谢楼主分享。。。。。。。。。
  • PHP学生
    #66楼    PHP学生
    2021-04-26 22:22:26
    Vivo手机 0
    学习学习
  • 胡银萍
    #67楼    胡银萍
    2021-05-17 17:51:24
    Chrome 0
    支持
  • niu
    #68楼    niu
    2021-06-12 15:49:58
    Chrome 0
    学习
  • 博瑞科技
    #69楼    博瑞科技
    2021-08-13 10:40:54
    Chrome 0
    感谢楼主分享
  • 张先生
    #70楼    张先生
    2021-09-14 08:40:56
    Chrome 0
    学习学习
  • swcml
    #71楼    swcml
    2021-09-23 14:15:27
    Chrome 0
    学习一下。。。。
  • swcml
    #72楼    swcml
    2021-09-23 14:20:19
    Chrome 0
    学习学习
  • 清风
    #73楼    清风
    2021-10-26 16:45:54
    Chrome 0
    请问这个怎么安装,我卡在了在后台创建导入按钮了
  • Rambo
    #74楼    Rambo
    2021-10-30 11:14:52
    Chrome 0
    做个标记 感谢楼主分享
  • baqi89757
    #75楼    baqi89757
    2021-12-02 14:56:04
    Chrome 0
    厉害,正在考虑写个导出,没想到有现成得例子,谢谢楼主
  • LandQ
    #76楼    LandQ
    2021-12-02 15:23:51
    Chrome 0
    厉害,学习学习
  • 小小白
    #77楼    小小白
    2021-12-18 20:19:16
    Edge 0
    感谢楼主分享~
  • glovy
    #78楼    glovy
    2021-12-29 09:28:16
    Chrome 0
    这个很牛看看啊
  • glovy
    #79楼    glovy
    2021-12-29 09:30:35
    Chrome 0
    我回复了看不到js。不过还是很感谢楼主放出这么好的东西
  • phpcms
    #80楼    phpcms
    2021-12-30 12:56:23
    Chrome 0

    哈,这个牛逼,看下

  • phpcms
    #81楼    phpcms
    2021-12-30 13:02:03
    Chrome 0
    回复看看
  • lolian2
    #82楼    lolian2
    2021-12-30 16:29:11
    Chrome 0
    学习下
  • 执筆丶写浮生
    #83楼    执筆丶写浮生
    2022-01-06 15:45:15
    Edge 0
    来学习一下。。。。。
  • 执筆丶写浮生
    #84楼    执筆丶写浮生
    2022-01-06 16:10:14
    Edge 0
    1111111111111111111111111111111111111
  • 393084942
    #85楼    393084942
    2022-01-17 00:46:46
    Chrome 0
    学习一下怎么使用
  • 草木人
    #86楼    草木人
    2022-01-27 14:16:42
    Chrome 0
    琉惗 请教下,你的PHP是放那个路径?文件名有要求没?
  • chaosoven
    #87楼    chaosoven
    2022-02-15 16:04:29
    Chrome 0
    来学习一下
  • suovee
    #88楼    suovee
    2022-03-03 16:47:22
    Chrome 0
    来学习一下
  • kakky
    #89楼    kakky
    2022-03-04 19:24:00
    Chrome 0
    厉害了学习学习
  • 陈生生
    #90楼    陈生生
    2022-03-09 11:31:00
    Chrome 0
    666,刚好需要
  • 18062075971
    #91楼    18062075971
    2022-03-20 23:53:12
    Edge 0
    学习分享感谢~
  • karas
    #92楼    karas
    2022-03-25 12:02:05
    Edge 0
    厉害厉害 感谢楼主分享
  • leoburr
    #93楼    leoburr
    2022-04-01 00:05:33
    Chrome 0
    学习一下
  • glass
    #94楼    glass
    2022-05-30 10:00:56
    Chrome 0
    学习一下
  • tree
    #95楼    tree
    2022-08-17 17:51:37
    Chrome 0
    大神~学习下
  • 1139396362
    #96楼    1139396362
    2022-08-18 08:50:29
    Edge 0
    牛逼
  • biezhaoqiang0320
    #97楼    biezhaoqiang0320
    2022-10-19 11:37:34
    Chrome 0
    琉惗 厉害厉害厉害厉害
  • 梦翔网络
    #98楼    梦翔网络
    2022-10-23 09:21:01
    Edge 0
    学习一下。正需要
  • 刘云海
    #99楼    刘云海
    2022-10-24 23:34:51
    Chrome 0
    牛逼,感谢楼主分享。。。。。。。。。
  • user007
    #100楼    user007
    2022-11-02 17:07:45
    Chrome 0
    学习学习,先插个眼
  • xiemoxiaoshao
    #101楼    xiemoxiaoshao
    2022-11-08 15:29:15
    Chrome 0
    厉害厉害!向你学习。
  • 632881002
    #102楼    632881002
    2022-11-12 23:03:46
    Edge 0
    学习学习学习
  • tenfly
    #103楼    tenfly
    2022-11-29 11:26:37
    Chrome 0
    感谢楼主,看看
  • zealens
    #104楼    zealens
    2023-01-18 16:13:14
    Chrome 0
    写的真好,感谢楼主
  • zealens
    #105楼    zealens
    2023-01-18 16:19:20
    Chrome 0
    楼主,分享的真好,学习了
  • zealens
    #106楼    zealens
    2023-01-18 20:09:10
    Chrome 0
    学习,很好,快成功了
  • jany2276
    #107楼    jany2276
    2023-02-14 15:29:04
    Chrome 0
    学习下,感谢楼主分享
  • qaq
    #108楼    qaq
    2023-03-20 09:44:25
    Chrome 0
    学习下学习下
  • 陈德显
    #109楼    陈德显
    2023-05-31 15:38:28
    Chrome 0
    学习学习,如果所有模块通用就好了
  • 秉烛思
    #110楼    秉烛思
    2023-06-12 09:28:48
    Edge 0
    大佬牛逼,学习了。。
  • 小豪子
    #111楼    小豪子
    2023-06-13 20:34:28
    Chrome 0
    很好,学习下
  • 蜡笔小新
    #112楼    蜡笔小新
    2023-07-19 16:47:41
    Chrome 0
    谢谢分享,这个貌似挺强大的
  • 8834629
    #113楼    8834629
    2023-08-21 10:07:55
    Chrome 0
    真是个人才啊,谢谢
  • 开心果
    #114楼    开心果
    2023-10-09 15:06:53
    Chrome 0
    看着不错,先收藏
  • 开心果
    #115楼    开心果
    2023-10-09 16:11:48
    Chrome 0
    好像这边版本已经不支持现在新版本了,路径等等都对不上,打赏后文件内容那些也是对不上,希望楼主能更新一个新版本的,非常感谢
  • 开心果
    #116楼    开心果
    2023-10-09 16:33:45
    Chrome 0
    新版本的是否一样 琉惗
  • 开心果
    #117楼    开心果
    2023-10-09 16:34:38
    Chrome 0
    琉惗 新版本是否一样操作
  • afen06
    #118楼    afen06
    2023-10-27 12:04:29
    Chrome 0
    思路可以借鉴下,不难
  • 小昕
    #119楼    小昕
    2023-11-06 19:00:16
    Chrome 0
    学习下学习下学习下学习下
  • 小昕
    #120楼    小昕
    2023-11-06 21:34:46
    Chrome 0
    琉惗 牛逼,感谢楼主分享。。。。。。。。。
  • 木木木木
    #121楼    木木木木
    2023-11-08 09:35:04
    Chrome 0
    琉惗 牛逼,感谢楼主分享。。。。。。。。。
  • 帝云网络-长期接单
    #122楼    帝云网络-长期接单
    2023-11-24 21:46:15
    Edge 0
    学习学习,感谢分享!!!
  • 创发
    #123楼    创发
    2023-12-28 16:46:23
    Chrome 0
    这个插件非常好,值得学习了解一下
  • 1905874466
    #124楼    1905874466
    2024-01-22 11:52:54
    Chrome 0
    不错 进来学习学习
  • mp4play
    #125楼    mp4play
    2024-02-14 11:39:39
    Firefox 122.0 0
    学习下,感谢楼主分享。
  • 赵大宝
    #126楼    赵大宝
    2024-04-11 09:24:05
    Chrome 0
    学一下一下看看