最新消息:imsyx老店新开,原博客因服务器问题,数据全毁,痛心!

PHPcms利用ExcelReader导入excel到mysql数据库

PHP开发 tally 1639浏览

php excel reader

下载地址: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;
}
*/

 

转载请注明:小码农 » PHPcms利用ExcelReader导入excel到mysql数据库