ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

2025-11-30 09:53:54

1、下载 thinkphp_3.2.3 和 PHPExcel_1.8.0 并解压

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

2、复制“thinkphp_3.2.3”中的文件到根目录

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

3、在根目录下的“ThinkPHP\Library\Vendor”中新建一个文件夹,命名PHPExcel

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

4、复制“PHPExcel_1.8.0_doc\Classes”中的文件夹和文件到“ThinkPHP\Library\Vendor\PHPExcel”中

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

5、把Thinkphp 和 MySQL 数据库连接起来,修改“ThinkPHP\Conf”路径中的“convention.php”文件即可

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

6、打开“Application”文件夹,会发现是空的,这是我们需要运行下ThinkPHP,“Application”文件夹便多出了很多东西

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

7、在“Application\Home\View”视图文件夹中创建一个文件夹"Index"(注意大小写),并在该文件夹中创建一个index.html的文件

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

8、这个文件里便是前台代码:

<form action="{:U('upload')}" enctype="multipart/form-data" method="post">

<input type="file"name="photo" />

<input type="submit"value="导入数据">

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

9、“Application\Home\Controller”修改控制器文件夹中的“IndexController.class.php”文件

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

10、代码修改成如下:

<?php

namespace Home\Controller;

use Think\Controller;

class IndexController extends Controller {

public function upload() {

ini_set('memory_limit','1024M');

if (!empty($_FILES)) {

$config = array(

'exts' => array('xlsx','xls'),

'maxSize' => 3145728000,

'rootPath' =>"./Public/",

'savePath' => 'Uploads/',

'subName' => array('date','Ymd'),

);

$upload = new \Think\Upload($config);

if (!$info = $upload->upload()) {

$this->error($upload->getError());}

vendor("PHPExcel.PHPExcel");

$file_name=$upload->rootPath.$info['photo']['savepath'].$info['photo']['savename'];

$extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));//判断导入表格后缀格式

if ($extension == 'xlsx') {

$objReader =\PHPExcel_IOFactory::createReader('Excel2007');

$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');

} else if ($extension == 'xls'){

$objReader =\PHPExcel_IOFactory::createReader('Excel5');

$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');

}

$sheet =$objPHPExcel->getSheet(0);

$highestRow = $sheet->getHighestRow();//取得总行数

$highestColumn =$sheet->getHighestColumn(); //取得总列数

for ($i = 2; $i <= $highestRow; $i++) {

//看这里看这里,前面小写的a是表中的字段名,后面的大写A是excel中位置

$data['a'] =$objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();

$data['b'] =$objPHPExcel->getActiveSheet()->getCell("B" .$i)->getValue();

$data['c'] =$objPHPExcel->getActiveSheet()->getCell("C" .$i)->getValue();

$data['d'] = $objPHPExcel->getActiveSheet()->getCell("D". $i)->getValue();

$data['e'] =$objPHPExcel->getActiveSheet()->getCell("E" .$i)->getValue();

$data['f'] =$objPHPExcel->getActiveSheet()->getCell("F" . $i)->getValue();

$data['input_time'] = time();

$data['promotion_type'] = mt_rand(3, 5);

//看这里看这里,这个位置写数据库中的表名

M('goods')->add($data);

}

$this->success('导入成功!');

} else {

$this->error("请选择上传的文件");

}

}

}

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

11、运行ThinkPHP,浏览事先准备的Excel

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

12、大功告成,O(∩_∩)O~~

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

ThinkPHP3.2.3+PHPExcel1.8.0导入表格到数据库

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢