搜尋
首頁php教程php手册ThinkPHP基于PHPExcel导入Excel文件的方法

这篇文章主要介绍了ThinkPHP基于PHPExcel导入Excel文件的方法,对于Excel文件的上传、读取操作以及写入数据库等都做了较为详尽的讲述,在进行项目开发的过程中非常

本文实例讲述了ThinkPHP基于PHPExcel导入Excel文件的方法。分享给大家供大家参考。具体方法如下:

主要知识点,用PHPExcel导入Excel数据经过这几天测试还是可以,xls,xlsx都可以获取Excel的数据。
下载地址:

开发思路:

1.先把Excel文件上传到服务器

2.获取服务器Excel文件内容

3.写入数据库

一、上传Excel文件,,使用PHP里自带的上传方法 “\Think\Upload();”,可以很方便的实现。为此我整理下使用这个方法的最简单方式

复制代码 代码如下:

/**
 * TODO 上传文件方法
 * @param $fileid form表单file的name值
 * @param $dir 上传到uploads目录的$dir文件夹里
 * @param int $maxsize 最大上传限制,默认1024000 byte
 * @param array $exts 允许上传文件类型 默认array('gif','jpg','jpeg','bmp','png')
 * @return array 返回array,失败status=0 成功status=1,filepath=newspost/2014-9-9/a.jpg
 */
function uploadfile($fileid,$dir,$maxsize=5242880,$exts=array('gif','jpg','jpeg','bmp','png'),$maxwidth=430){
    $upload = new \Think\Upload();// 实例化上传类
    $upload->maxSize   =     $maxsize;// 设置附件上传大小,单位字节(微信图片限制1M
    $upload->exts      =     $exts;// 设置附件上传类型
    $upload->rootPath  =     './uploads/'; // 设置附件上传根目录
    $upload->savePath  =     $dir.'/'; // 设置附件上传(子)目录
    // 上传文件
    $info   =   $upload->upload();

    if(!$info) {// 上传错误提示错误信息
        return array(status=>0,msg=>$upload->getError());
    }else{// 上传成功
        return array(status=>1,msg=>'上传成功',filepath=>$info[$fileid]['savepath'].$info[$fileid]['savename']);
    }
}

这里默认上传到ThinkPHP入口文件index.php所在的文件夹uploads,此方法返回一个数据,状态status=1时为成功,也建议大家在写功能模块时或做封装时,整个系统的在架构初期应该有约定,在必要的情况下返回值用数组形式,成功返回

复制代码 代码如下:

return array(status=>1,data=>....,info=>.....)


失败时可以返回

复制代码 代码如下:

array(status->0,info=>'可以说明出错的原因',....)


这样用统一的方式有利于规范开发,团队协作时看代码时可以提高效率,减少思维运转,说远了,上传的方法调用方式如下:

复制代码 代码如下:

//excel 文件
if(!empty($_FILES['xls']['name'])){
    $upload=uploadfile('xls','tempxls',5242880,array('xls','xlsx'));
    if($upload['status']){
 $path=$upload['filepath'];
    }else{
 $this->error($upload['msg']);
    }
}

二、获取Excel数据

1.首先需要引入PHPExcel的类库

复制代码 代码如下:

require_once 'module/PHPExcel/Classes/PHPExcel/IOFactory.php';

2.获取Excel第0张表即(Sheet1)

复制代码 代码如下:

//获取excel文件
$objPHPExcel = \PHPExcel_IOFactory::load("uploads/$path");
$objPHPExcel->setActiveSheetIndex(0);
$sheet0=$objPHPExcel->getSheet(0);

3.获取行数,并把数据读取出来$data数组

复制代码 代码如下:

$rowCount=$sheet0->getHighestRow();//excel行数
$data=array();
for ($i = 2; $i     $item['name']=$this->getExcelValue($sheet0,'A'.$i);
    $item['sex']=$this->getExcelValue($sheet0,'B'.$i);
    $item['contact']=$this->getExcelValue($sheet0,'C'.$i);
    $item['remark']=$this->getExcelValue($sheet0,'D'.$i);
    $item['addtime']=$this->getExcelValue($sheet0,'E'.$i);

    $data[]=$item;
}

三、最后保存到数据库

复制代码 代码如下:

$success=0;
$error=0;
$sum=count($data);
foreach($data as $k=>$v){
    if(M('temp_area3')->data($v)->add()){
 $success++;
    }else {
 $error++;
    }
}

echo "总{$sum}条,成功{$success}条,失败{$error}条。";

至此大功告成!希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具