php之初级PHPExcel
PHPExcel 是个很强大的操作文件的框架,可以很轻松的帮助php开发者操作办公文件和数据库之间的数据对接。刚好自己遇到了这样的需求,也是自己的能力的提升,在这里记录了自己的理解,也希望能帮助一起学习的朋友。
1.下载
PHPExcel的代码是开源的,我们可以再github上就可以下载了,下载地址——>下载地址,下载加压后会有几个文件夹,这里我们只关注核心的文件夹 Classes ,在我们使用开发的时候只需要用到Classes这个就可以了。
2.项目加载
使用PHPExcel我们需要在项目中加载这些文件,我写了两个demo,第一个没有使用框架,第二个使用了YII框架,没有使用框架的项目是自己的一个小demo,使用PHPExcel就是直接将Classes文件夹复制到demo的根目录下,在使用的时候引入一些文件即可:
include './Classes/PHPExcel.php';
include './Classes/PHPExcel/IOFactory.php';
include './Classes/PHPExecl/Reader/Excel2007.php';
没有使用yii框架的demo使用PHPExcel很是方便,但是使用YII框架的demo使用PHPExcel就比较麻烦了,不能直接复制到项目根目录下,需要将Classes复制到项目的proteced/extensions目录下,并且在使用的时候也麻烦些:
Yii::$enableIncludePath = false;
Yii::import('application.extensions.PHPExcel.PHPExcel',1);
Yii::import('application.extensions.PHPExcel.PHPExcel.IOFactory',1);
这只是一个简单的引入使用,还有很多大牛的方法可以学习使用。
3.使用PHPExcel读写excel文件
I.读取excel文件
首先初始化读取文件的模式:
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
然后装载要读取的文件:
$objPHPExcel = $objReader->load($filename);
获取文档:
$sheet = $objPHPExcel->getSheet(0);
获取文档的行(row)和列(column):
$highestRow = $sheet->getHighestRow();
$highestcolumn = $sheet->getHighestColumn();
$highestcolumn = $sheet->getHighestColumn();
最后根据行和列定位单元格,获取单元格内容:
for ($i=1;$i<=$highestRow;$i++){
for ($k='A';$k<=$highestcolumn;$k++){
$str = $objPHPExcel->getActiveSheet()->getCell("$k$i")->getValue();
}
for ($k='A';$k<=$highestcolumn;$k++){
$str = $objPHPExcel->getActiveSheet()->getCell("$k$i")->getValue();
}
其中$str 就是每个单元格里的内容。这样就可以读取excel文件里的内容,通过curd操作就可以将数据存储到数据中。
II.写入Excel文件
将数据写入到Excel相对简单一些,当然也有很复杂的操作可以查看大牛的讲解;
首先初始化PHPExcel对象;
$objPHPExcel = new PHPExcel();
将数据写到相对应的单元格内:
while ($row = $data->fetch_assoc()){
$num++;
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$num,$row['code']);
}
$objPHPExcel->getActiveSheet()->setTitle('User'); //设置标题
$objPHPExcel->setActiveSheetIndex(0);
$num++;
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$num,$row['code']);
}
$objPHPExcel->getActiveSheet()->setTitle('User'); //设置标题
$objPHPExcel->setActiveSheetIndex(0);
初始化写模式并保存文件:
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'excel5');
$objWriter->save('code.xlsx');
$objWriter->save('code.xlsx');
这样就实现了php对excel文件的读写操作,是不是很简单,我只是做了一个简单的实例,其实还有很多的操作实现一个完美的excel表格或者其他的文件。