PHPexcel的demo

//数字转excel列

function IntToChr($index, $start = 65)
{
    $str = '';
    if (floor($index / 26) > 0) {
        $str .= IntToChr(floor($index / 26) - 1);
    }
    return $str . chr($index % 26 + $start);
}
//下载
function downdata()
{

    require_once './vendor/Excel/PHPExcel.php';
    require_once './vendor/Excel/PHPExcel/CachedObjectStorageFactory.php';
    require_once './vendor/Excel/PHPExcel/Settings.php';
    $model = new Items();
    $where=[];
    //自己组合where条件
    $list = $model->get_list($where);
    $PHPExcel = new \PHPExcel();//实例化
    $objActSheet = $PHPExcel->getActiveSheet();
    $objActSheet->setTitle('产品列表');
    $objActSheet->setCellValue('A1', '列表页');
    $objActSheet->setCellValue('A18', '  ');
    $objActSheet->setCellValue('A19', '柴油机参数');
    $objActSheet->setCellValue('A25', '  ');
    $objActSheet->setCellValue('A27', '发电机参数');
    $objActSheet->setCellValue('A32', '  ');
    $objActSheet->setCellValue('A34', '控制器'); 
    $objActSheet->setCellValue('B39', 'ID:');
    $objActSheet->getColumnDimension('A1')->setWidth(40);
    $objActSheet->getColumnDimension('B1')->setWidth(40);

    //合并单元格
    $objActSheet->mergeCells('A1:A19');
    $objActSheet->mergeCells('A20:A25');
    $objActSheet->mergeCells('A27:A32');
    $objActSheet->mergeCells('A34:A39');
    foreach ($list as $k => $val) {
        $objActSheet->setCellValue(IntToChr($k + 2) . '1', $val['crew_model']);
        $objActSheet->setCellValue(IntToChr($k + 2) . '2', $val['engine_brand']); 
    }

    /*  for($i=0;$i<count($list);$i++){
          for($m=0;$m<36;$m++){
              $objActSheet->getColumnDimension(IntToChr($i + 2).$m)->setWidth(120);
          }
      }*/
    $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, "Excel2007");//创建生成的格式
    header('Content-Disposition: attachment;filename="产品列表.xlsx"');//下载下来的表格名
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    $PHPWriter->save("php://output");  //表示在$path路径下面生成demo.xlsx文件
}
//解析excel
function itemUpload()
    {
        require_once './vendor/Excel/PHPExcel.php';
        set_time_limit(0);
        ini_set('memory_limit', '256M');
        $file = request()->file('file');
        $info = $file->validate(['ext' => 'xls,xlsx,csv'])->move('public/uploads/items', 'item' . time());//上传验证后缀名,以及上传之后移动的地址
        $extension = explode('.', $_FILES['file']['name']);
        $filetype = $extension[1];
        $exclePath = $info->getSaveName();  //获取文件名
        $file_name = 'public/uploads/items/' . $exclePath;   //上传文件的地址
        if ($filetype == 'xlsx')
            $objReader = \PHPExcel_IOFactory::createReader('Excel2007');
        if ($filetype == 'csv')
            $objReader = \PHPExcel_IOFactory::createReader('CSV');
        if ($filetype == 'xls')
            $objReader = \PHPExcel_IOFactory::createReader('Excel5');
        $obj_PHPExcel = $objReader->load($file_name);  //加载文件内容,编码utf-8
        $excel_array = $obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式
        $excel_array = aryy_x($excel_array);
        array_shift($excel_array);
        array_shift($excel_array);
        foreach ($excel_array as $k => $v) {
            if ($v[0]) {
                $sizearr = explode('*', $v[5]);
                $data[$k]['crew_model'] = $v[0];
                $data[$k]['engine_brand'] = $v[1];
                $data[$k]['diesel_engine_model'] = $v[2];
                $data[$k]['generator_brand'] = $v[3];
                $data[$k]['generator_model'] = $v[4];
                $data[$k]['size1'] = $sizearr[0];
                $data[$k]['size2'] = $sizearr[1];
                $data[$k]['size3'] = $sizearr[2];
                $data[$k]['weight'] = $v[6];
                $data[$k]['main_power'] = $v[7];
                $data[$k]['spare_power'] = $v[8];
                $data[$k]['inspecting_power'] = $v[9];
                $data[$k]['rated_fuel_consumption'] = $v[10];
                $data[$k]['rated_engine_consumption'] = $v[11];
                $data[$k]['rated_voltage'] = $v[12];
                $data[$k]['excitation_type'] = $v[13];
                $data[$k]['controller_brand'] = $v[14];
                $data[$k]['controller_model'] = $v[15];
                $data[$k]['show_type'] = $v[16];
                $data[$k]['std'] = $v[17];
                $data[$k]['gj'] = $v[18];
                $data[$k]['xc'] = $v[19];
                $data[$k]['zs'] = $v[20];
                $data[$k]['pl'] = $v[21];
                $data[$k]['czyyggl'] = $v[22];
                $data[$k]['ccbyyggl'] = $v[23];
                $data[$k]['ljfs'] = $v[25];
                $data[$k]['zc'] = $v[26];
                $data[$k]['dzzcz'] = $v[27];
                $data[$k]['fzyyggl'] = $v[28];
                $data[$k]['fbyyggl'] = $v[29];
                $data[$k]['jyfhdj'] = $v[30];
                $data[$k]['ycd'] = $v[32];
                $data[$k]['fdjjkxm'] = $v[33];
                $data[$k]['cyjjkxm'] = $v[34];
                $data[$k]['zdgn'] = $v[35];
                $data[$k]['yylx'] = $v[36];
                $data[$k]['cyjzzc'] = $v[37];
                $data[$k]['orgid'] = session('orgid');
                if ($v[38]) {
                    $flag = true;//修改
                    $data[$k]['id'] = $v[38];
                } else
                    $data[$k]['addtime'] = time();
            }
        }
        unset($info);
        @unlink($file_name);
        $model = new Items();
        if ($flag)
            $model->isUpdate(true)->saveAll($data);
        else
            $model->isUpdate(false)->saveAll($data);
        rsm(0,[],'上传成功');

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值