好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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引入它.

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

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

根据参考注意几点:

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

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

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

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

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

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

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

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

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

查看更多关于ThinkPHP如何导入Excel表中的内容介绍及注意事项的详细内容...

  阅读:83次