登录 注册

PHPExcel使用方法

前几天我用PHPExcel做了一个网站的数据Excel导入导出系统,然后把心得发一下

首先肯定要下载一个PHPExcel,这个谷歌上到处都有就不放了

然后接下来先讨论导出,相对来说导出比导入简单很多

首先当然需要include库进来,这里引入PHPExcel.php即可

include './include/phpexcel/PHPExcel.php';

然后创建对象

$excel=new PHPExcel();

接下来只要知道一个写入的接口,就是

$excel->getActiveSheet()->setCellValue(Listname,Value);

Listname就是列名,比如A1,B5之类的,value就是格子里面的值

下面就是完整的代码:

	for ($i = 2;$i <= count($arr) + 1;$i++) {
		$j = 0;
		foreach ($arr[$i - 2] as $key=>$value) {
			$excel->getActiveSheet()->setCellValue("$letter[$j]$i","$value");
			$j++;
		}
	}

然后数据写完以后导出即可

$write=new PHPExcel_Writer_Excel5($excel);
header("Content-type:application/vnd.ms-excel"); 
header("Content-Disposition:filename=".date('Y-m-d H:i:s',time()).".xls");
$write->save('php://output');


然后是导入,导入比较麻烦。当然导入的接口其实也不麻烦,主要麻烦的地方在于导入以后的数据处理,这里就只介绍接口了。

首先引入IOFactory.php,然后先判断后缀名

$tmp_name=$_FILES['excel']['tmp_name'];
$file_name=$_FILES['excel']['name'];
$temp_arr=explode(".",$file_name);
$file_ext=array_pop($temp_arr);
$file_ext=trim($file_ext);
$file_ext=strtolower($file_ext);
if ($file_ext=="xls"){
	$inputFileType = 'Excel5';
}elseif ($file_ext=="xlsx"){
	$inputFileType = 'Excel2007';
}else{
	$smarty->assign("alert","导入的文件必须为excel");
	die;
}

这里xls和xlsx用的是不同的类来处理(因为数据格式不同)

$inputFileName=$tmp_name;
$objReader=PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel=$objReader->load($inputFileName);

然后只要调用这个createReader方法即可

接下来获取总行数列数

$objWorksheet=$objPHPExcel->getActiveSheet();//取得总行数
$highestRow=$objWorksheet->getHighestRow();//取得总列数
$highestColumn=$objWorksheet->getHighestColumn();
$highestColumnIndex=PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数

当然,还有获取数据的接口

$objWorksheet->getCellByColumnAndRow($col,$row)->getValue()

只需要定义$col和$row即可获取数据,然后一般循环调用就可以获取所有数据

2017
02 27
上一篇
Older
下一篇
Newer
评论
0
点击
131
发布
我是标题
我是文字
我是标题
我是文字
用户名
密码
用户名
密码
重复密码
努力的加载中.....