導入前的準備:
1.下載phpexcel類,網(wǎng)址:http://phpexcel.codeplex.com/releases/view/26478
找到相應的文件下載,如下載好了如 PHPExcel_1.8.0_odt.zip,解壓之后會看到里面有三個文件夾和三個.txt文件,但是只需要Classes文件就可以了,然后將Classes文件放入目錄ThinkPHP/Extend/Vendor/里面.
2.創(chuàng)建一個ExcelToArrary類,命名ExcelToArrary.class.php,注意了,這個類是要放在目錄Thinkphp/Extend/Library/ORG/Util里面,如果這里目錄里已經(jīng)有這個類的話就不用創(chuàng)建了,然后在你自己簡歷的導入模塊里面如ExcelAtion.class.php引入它.
- public function __construct()
- {
- import('ORG.Util.ExcelToArrary');//導入excelToArray類
- }
具體先參考 http://blog.csdn.net/sui13725202/article/details/9285501
根據(jù)參考注意幾點:
1)、參考里面設置的上傳路徑為
$savePath = C( './Public/Uploads/');
我在實踐的時候,這種路徑會出錯,不是上次到你想要的文件,只上傳到項目的根目錄里面而已,后來我改為下面的形式就可以了.
$savePath = './Public/Uploads/';
2)、foreach循環(huán)添加數(shù)據(jù)的時候,一定要注意添加的字段的順序必須要和數(shù)據(jù)庫表里的相同,而且字段名稱也要對應相同,否則會出錯.
3)、里面的 tmp_name是個路徑來的m不是變量 ,
4)、我并不是按照參考那里導進去的m在循環(huán)和添加那里我進行了修改:
- foreach ( $res as $k => $v ) //循環(huán)excel表
- {
- //$k=$k-1;//addAll方法要求數(shù)組必須有0索引
- // $data[$k]['id'] = $v [0];//創(chuàng)建二維數(shù)組 -------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];
- } //開源軟件:Vevb.com
- $stu = M('Student');
- foreach($data as $k=>$v) { //******解決辦法:要用foreach循環(huán)來一條一條數(shù)據(jù)地添加
- $result = $stu -> add($v); //******另外的方法就是修改addAll方法
- }
5)、有時候需要在導入之前刪除excel表的頭一行或兩行,這時候需要在第一個foreach循環(huán)之前,加上一個語句,進行刪除:
array_shift($res); //刪除頭部文件,有多少行這個,就刪除多少行頭部文件
array_shift($res); //刪除第二行
6)、如果你覺得數(shù)據(jù)導進去之后不需要這個excel文件了,可以刪除它,在確認添加完之后可以用unlink語句進行刪除.
unlink($savePath . $file_name); //用unlink函數(shù)刪除導入的文件
7)、準備完之后注意:在php.ini里面把;extension=php_zip.dll前面的分號去掉。
相信弄好這些后,導入excel表的數(shù)據(jù)是沒問題的了.
3.總結(jié):數(shù)據(jù)導入,格式很嚴格,總共用到三個文件:
index.html,ExcelAction.class.php,ExcelToArrary.class.php
新聞熱點
疑難解答
圖片精選