网站地图    收藏   

主页 > 后端 > thinkphp教程 >

ThinkPHP如何导入Excel表中的内容介绍及注意事项

来源:自学PHP网    时间:2014-11-28 23:17 作者: 阅读:

[导读] 导入前的准备:1.下载phpexcel类,网址:http://phpexcel.codeplex.com/releases/view/26478 找到相应的文件下载,如下载好了如 PHPExcel_1.8.0_odt.zip,解压之后会看到里面有三个文件夹和三个.tx......

ThinkPHP如何导入Excel表中的内容介绍及注意事项

导入前的准备:

1.下载phpexcel类,网址:http://phpexcel.codeplex.com/releases/view/26478    

找到相应的文件下载,如下载好了如 PHPExcel_1.8.0_odt.zip,解压之后会看到里面有三个文件夹和三个.txt文件,但是只需要Classes文件就可以了,然后将Classes文件放入目录ThinkPHP\Extend\Vendor\里面.

2.创建一个ExcelToArrary类,命名ExcelToArrary.class.php,注意了,这个类是要放在目录Thinkphp/Extend/Library/ORG/Util里面,如果这里目录里已经有这个类的话就不用创建了,然后在你自己简历的导入模块里面如ExcelAtion.class.php引入它.

  1. public function __construct()   
  2.     {   
  3.         import('ORG.Util.ExcelToArrary');//导入excelToArray类   
  4.     } 

具体先参考 http://blog.csdn.net/sui13725202/article/details/9285501    

根据参考注意几点:

1)、参考里面设置的上传路径为

$savePath = C( './Public/Uploads/');

我在实践的时候,这种路径会出错,不是上次到你想要的文件,只上传到项目的根目录里面而已,后来我改为下面的形式就可以了.

$savePath = './Public/Uploads/';

2)、foreach循环添加数据的时候,一定要注意添加的字段的顺序必须要和数据库表里的相同,而且字段名称也要对应相同,否则会出错.

3)、里面的 tmp_name是个路径来的m不是变量  ,

4)、我并不是按照参考那里导进去的m在循环和添加那里我进行了修改:

  1. foreach ( $res as $k => $v )   //循环excel表 
  2.       { 
  3.             //$k=$k-1;//addAll方法要求数组必须有0索引 
  4.             // $data[$k]['id'] = $v [0];//创建二维数组     -------id 可以自增 
  5.             $data[$k]['c_id'] = $v [0]; 
  6.             $data[$k]['number'] = $v [1]; 
  7.             $data[$k]['name'] = $v [2]; 
  8.             $data[$k]['stu_no'] = $v [3]; 
  9.             $data[$k]['xibie'] = $v [4]; 
  10.             $data[$k]['class'] = $v [5]; 
  11.             $data[$k]['subject'] = $v [6]; 
  12.       } //开源软件:phpfensi.com 
  13.       $stu = M('Student'); 
  14.       foreach($data as $k=>$v) {        //******解决办法:要用foreach循环来一条一条数据地添加 
  15.             $result = $stu -> add($v);    //******另外的方法就是修改addAll方法 
  16.       } 

5)、有时候需要在导入之前删除excel表的头一行或两行,这时候需要在第一个foreach循环之前,加上一个语句,进行删除:

array_shift($res);  //删除头部文件,有多少行这个,就删除多少行头部文件

array_shift($res);  //删除第二行

6)、如果你觉得数据导进去之后不需要这个excel文件了,可以删除它,在确认添加完之后可以用unlink语句进行删除.

unlink($savePath . $file_name);  //用unlink函数删除导入的文件

7)、准备完之后注意:在php.ini里面把;extension=php_zip.dll前面的分号去掉。

相信弄好这些后,导入excel表的数据是没问题的了.

3.总结:数据导入,格式很严格,总共用到三个文件:

index.html,ExcelAction.class.php,ExcelToArrary.class.php

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论