美文网首页
PHP-上传excel转换HTML输出

PHP-上传excel转换HTML输出

作者: 九夜ailing | 来源:发表于2019-03-12 23:58 被阅读0次
    image
    这个方法是借助phpoffice/phpexcel来完成的,话不多说,我们直接上码

    /**
    * 安装excel处理类 composer require phpoffice/phpexcel
    * @return hinkesponseJson
    * @throws PHPExcel_Reader_Exception
    * @throws PHPExcel_Writer_Exception
    * Created on 2018/12/26 23:29
    * Created by Dh
    */
    
    public function excelToHtml()
    {
        return $this->apiSuc(ActionExcel::excel2html(request()->file()));
    }
    
    /**
    * 逻辑处理
    * 将excel生成HTML
    * @param $data 上传的excle文件对象
    * @return array 更加excel的sheet生成的HTML文件访问路径数组
    * @throws PHPExcel_Reader_Exception
    * @throws PHPExcel_Writer_Exception
    * Created on 2018/12/26 23:27
    * Created by Dh
    */
    public static function excel2html($data)
    {
        $obj = $data['file'];
        //上传文件
        $info = $obj->move(ROOT_PATH . 'public' . DS . 'uploads'. DS . 'file');
        $filePath = $info->getPathname();
        $externsion = $info->getExtension();
        $fileFullName = $info->getFilename();
        $htmlName = str_replace('.' . $externsion, '', $fileFullName);
        //文件名自动判断文件类型
        $fileType = PHPExcel_IOFactory::identify($filePath);
        $objReader = PHPExcel_IOFactory::createReader($fileType);
        $objPHPExcel = $objReader->load($filePath);
        $sheetIndex = $objPHPExcel->getSheetCount();
        $objWriter = new PHPExcel_Writer_HTML($objPHPExcel);
        //可以将括号中的0换成需要操作的sheet索引
        $sheetHtml = [];
        for ($i = 0;$i < $sheetIndex;$i++) {
            //这里记得将文件名包含进去
            $savePath = ROOT_PATH . 'public' . DS . 'uploads' . DS . 'html' . DS . $htmlName . '_' . ($i+1) . '.html';
            $objWriter->setSheetIndex($i);
            //保存为html文件
            $objWriter->save($savePath);
            $downloadPath = config('setting.site_url') . '/uploads/html/'. $htmlName . '_' . ($i+1) . '.html';
            array_push($sheetHtml, $downloadPath);
        }
        return $sheetHtml;
    }
    

    这里是集成在thinkphp5中的写法,其他框架或者直接原生代码,实现的逻辑都是一样的.那么我们再次梳理一遍
    1. 上传文件
    2. 读取文件
    3. 写入HTML文件
    4. 输出新的HTML文件

    相关文章

      网友评论

          本文标题:PHP-上传excel转换HTML输出

          本文链接:https://www.haomeiwen.com/subject/sslapqtx.html