下载地址:phpExcelReader
新版下载:http://code.google.com/p/php-excel-reader/downloads/list
我用的是老版本的,以下方法适用,新版本请参考文档。
上传压缩包内的excel文件夹到合适目录,我的是:/phpcms/libs/data 下
查找:
require_once 'Spreadsheet/Excel/Reader/OLERead.php';
改为:
require_once 'oleread.inc';
进入模块,在目标文件,添加
//批量替换 public function batch(){ $show_header = $show_scroll = true; if(!empty($_POST['info']['file'])){ $sql = "truncate table xb_roster"; $this->db->query($sql); $file = $_POST['info']['file']; //excel error_reporting(E_ALL ^ E_NOTICE); require_once PHPCMS_PATH."phpcms/libs/data/excel/reader.php"; $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('UTF-8');//CP936 $data->read($file); /*//测试输出 for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) { for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) { echo "\"".$data->sheets[0]['cells'][$i][$j]."\","; } echo "\n"; } */ //$i=2:代表从第2行开始导入(我的表格第一行是说明);sheets[0]['numRows']:第1个工作表的行数;sheets[0]['cells'][$i][1]:第1个工作表$i行第1列 for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) { $info = array( 'id' => $data->sheets[0]['cells'][$i][1], 'department' => $data->sheets[0]['cells'][$i][2], 'gangwei' => $data->sheets[0]['cells'][$i][3], 'name' => $data->sheets[0]['cells'][$i][4], 'tel' => $data->sheets[0]['cells'][$i][5], 'mobile' => $data->sheets[0]['cells'][$i][6], 'xuniwang' => $data->sheets[0]['cells'][$i][7] ); $this->db->insert($info); } showmessage(L("operation_success"),'?m=roster&c=roster&a=batch'); } include $this->admin_tpl('batch'); }
就OK了!
上传时,可能会报错“The filename ** is not readable”,我的解决办法是,把oleread.inc里,注释掉以下这段。
/* // check if file exist and is readable (Darko Miljanovic) if(!is_readable($sFileName)) { $this->error = 1; return false; } */