溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

TP5.0 PHPExcel 數(shù)據(jù)表格導(dǎo)出導(dǎo)入案例

發(fā)布時間:2020-11-09 13:51:51 來源:億速云 閱讀:299 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)TP5.0 PHPExcel 數(shù)據(jù)表格導(dǎo)出導(dǎo)入案例的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

1、先在github里面下載PHPexcel這個類庫

或者通過以下鏈接下載PHPexcel類庫。

http://www.php.cn/xiazai/leiku/1491

2、解壓之后把它復(fù)制到extend里面

控制器代碼如下:

<?php
/**
 * Created by PhpStorm.
 * User: luxiao
 * Date: 2017/5/8
 * Time: 16:49
 */
namespace app\index\controller;
use think\Loader;
use think\Controller;
class Excel extends Controller
{
    function excel()
    {
        $path = dirname(__FILE__); //找到當(dāng)前腳本所在路徑
        Loader::import('PHPExcel.Classes.PHPExcel');  //手動引入PHPExcel.php
        Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');  //引入IOFactory.php 文件里面的PHPExcel_IOFactory這個類
        $PHPExcel = new \PHPExcel();  //實例化
        $PHPSheet = $PHPExcel->getActiveSheet(); 
        $PHPSheet->setTitle("demo"); //給當(dāng)前活動sheet設(shè)置名稱
        $PHPSheet->setCellValue("A1","姓名")->setCellValue("B1","分?jǐn)?shù)");//表格數(shù)據(jù)
        $PHPSheet->setCellValue("A2","張三")->setCellValue("B2","2121");//表格數(shù)據(jù)
        $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007");  //創(chuàng)建生成的格式
        header('Content-Disposition: attachment;filename="表單數(shù)據(jù).xlsx"');  //下載下來的表格名
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        $PHPWriter->save("php://output"); //表示在$path路徑下面生成demo.xlsx文件
    }
}

調(diào)用excel方法就可以生成一個表格了,后續(xù)的根據(jù)自己的需要自己去寫代碼.

PHPexcel 表格數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫 city 表,在這之前自己先創(chuàng)建好表單,我這次用的都是地址數(shù)據(jù)表做的測試:

function inserExcel()
    {
        Loader::import('PHPExcel.Classes.PHPExcel');
        Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
        Loader::import('PHPExcel.Classes.PHPExcel.Reader.Excel5');
        //獲取表單上傳文件
        $file = request()->file('excel');
        $info = $file->validate(['ext' => 'xlsx'])->move(ROOT_PATH . 'public' . DS . 'uploads');  //上傳驗證后綴名,以及上傳之后移動的地址
        if ($info) {
//            echo $info->getFilename();
            $exclePath = $info->getSaveName();  //獲取文件名
            $file_name = ROOT_PATH . 'public' . DS . 'uploads' . DS . $exclePath;   //上傳文件的地址
            $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
            $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');  //加載文件內(nèi)容,編碼utf-8
            echo "<pre>";
            $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //轉(zhuǎn)換為數(shù)組格式
            array_shift($excel_array);  //刪除第一個數(shù)組(標(biāo)題);
            $city = [];
            foreach($excel_array as $k=>$v) {
                $city[$k]['Id'] = $v[0];
                $city[$k]['code'] = $v[1];
                $city[$k]['path'] = $v[2];
                $city[$k]['pcode'] = $v[3];
                $city[$k]['name'] = $v[4];
            }
            Db::name('city')->insertAll($city); //批量插入數(shù)據(jù)
        } else {
            echo $file->getError();
        }

前端代碼:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="http://localhost/chexian5.0/index.php/index/excel/intoexcel" enctype="multipart/form-data" method="post">
    <input type="file" name="excel" />
    <input type="submit" value="導(dǎo)入">
</form>
</body>
</html>

感謝各位的閱讀!關(guān)于TP5.0 PHPExcel 數(shù)據(jù)表格導(dǎo)出導(dǎo)入案例就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI