PHP-上傳excel轉(zhuǎn)換HTML輸出

image
這個(gè)方法是借助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文件對(duì)象
* @return array 更加excel的sheet生成的HTML文件訪問路徑數(shù)組
* @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);
    //文件名自動(dòng)判斷文件類型
    $fileType = PHPExcel_IOFactory::identify($filePath);
    $objReader = PHPExcel_IOFactory::createReader($fileType);
    $objPHPExcel = $objReader->load($filePath);
    $sheetIndex = $objPHPExcel->getSheetCount();
    $objWriter = new PHPExcel_Writer_HTML($objPHPExcel);
    //可以將括號(hào)中的0換成需要操作的sheet索引
    $sheetHtml = [];
    for ($i = 0;$i < $sheetIndex;$i++) {
        //這里記得將文件名包含進(jìn)去
        $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中的寫法,其他框架或者直接原生代碼,實(shí)現(xiàn)的邏輯都是一樣的.那么我們?cè)俅问崂硪槐?br> 1. 上傳文件
2. 讀取文件
3. 寫入HTML文件
4. 輸出新的HTML文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容