在项目中我们会对数据进行各种各样的处理,其中不乏将数据库数据导出excel文件、或者将excel文件中的数据导入项目中。下面我们来讲讲怎么导出excel怎么导入excel文件中的数据,
准备:服务器环境,PHPExcel包;
PHPExcel 可去官网下载 http://phpexcel.codeplex.com/
一 PHP导出Excel文件
include './PHPExcel.php'; //引入PHPExcel类(根据个人文件路径为准)
$objExcel = new PHPExcel(); // 实例化PHPExcel类
$objSheet = $objExcel->getActiveSheet();// 得到当前活动表格
$objSheet->setTitle('demo');//设置名称
//填充数据方式(1)
$objSheet->setCellValue('A1','姓名')->setCellValue('B1','性别')->setCellValue('C1','年龄');
$objSheet->setCellValue('A2','张三')->setCellValue('B2','男')->setCellValue('C2','18');
$objSheet->setCellValue('A3','李四')->setCellValue('B3','女')->setCellValue('C3','20');
//填充数据方式(2)
$arr = array(
array("姓名","性别","年龄"),
array("张三","男","18"),
array("李四","女","20")
);
$objSheet->fromArray($arr);
//按照数据生成excel表
$objSave = PHPExcel_IOFactory::createWriter($objExcel,'Excel2007');
//保存当前excel文件
$objSave->save('./demo.xlsx'); //填写文件保存路径
二 PHP导入Excel文件数据
include './PHPExcel/IOFactory.php'; //引入PHPExcel导入类(根据个人文件路径为准)
$filePath = './aa.xlsx'; //目标引入文件;
$fileType = PHPExcel_IOFactory::identify($filePath); //可以获取excel文件后缀(例Excel2003和Excel2007后缀都不同)
//根据sheet名选择性读取excel文件中sheet (1)
$objNote = PHPExcel_IOFactory::createReader($fileType); //得到读取对象
$sheetName = 'Sheet1'; //设置读取sheet名
$objNote->setLoadSheetsOnly($sheetName); //设置只读取某一个sheet;
$objExcel = $objNote->load($filePath);
/*********************************************************************/
//也可选择读取所有sheet(2)
$objExcel = PHPExcel_IOFactory::load($filePath); //加载文件
//读取数据(1) 全部读取
$sheetCount = $objExcel->getSheetCount(); //获取当前excel文件存在sheet个数
$data = [];
for ($i=0; $i < $sheetCount; $i++) {
$data[$i] = $objExcel->getSheet($i)->toArray(); //读取每个sheet文件数据存放到$data变量中;
}
//读取数据(2) 逐个读取;
foreach ($objExcel->getWorksheetIterator() as $sheet) { //循环每一个sheet
foreach ($sheet->getRowIterator() as $row) { //循环读取每一个sheet里面的每一行
// if($row->getRowIndex()<2 ){continue;} //过滤第一行 $row->gerRowIndex()获取当前行数
foreach ($row->getCellIterator() as $cell) { //循环读取每一个sheet里面的每一列
$data = $cell->getValue(); //获取每个单元格里面的数据
echo $data.'  ';
}
echo '<br>';
}
}