下载PHPExcel资源
https://github.com/PHPOffice/PHPExcelphp
引入PHPExcel资源
include "/lib/PHPExcel/Classes/PHPExcel/IOFactory.php";//读取Excel所需文件 include "/lib/PHPExcel/Classes/PHPExcel.php"; //写入excel所需的类文件
构造myExcelUtil类
private $fileName = null; private $sheet = 0; /** * myExcelUtil构造函数,构造参数为文件路径 * * @param String $fileName / public function __construct($fileName = null) { $this->fileName = $fileName; }
读出一个sheet表
/* * 读取一个sheet表,默认第一个 * / public function readSheet() { $this->readSheetBySheet(0); } /* * 读取一个sheet表 * @param String|int $sheetIndex,表名或索引 * @return array,二维数组 / public function readSheetBySheet($sheetIndex = 0) { //$filename = 'xuehua04.xlsx'; date_default_timezone_set('PRC'); // 读取excel文件 try { $inputFileType = PHPExcel_IOFactory::identify($this->fileName); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($this->fileName); } catch (Exception $e) { die("加载文件发生错误:" . pathinfo($this->fileName, PATHINFO_BASENAME) . ":" . $e->getMessage()); } // 肯定要读取的sheet try { $sheet = $objPHPExcel->getSheet($sheetIndex); $this->setSheet($sheet->getTitle()); } catch (PHPExcel_Exception $e) { } $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); $outputArray = array(); // 获取一行的数据 for ($row = 1; $row <= $highestRow; $row++) { // Read a row of data into an array $rowData = $sheet->rangeToArray("A" . $row . ":" . $highestColumn . $row, NULL, TRUE, FALSE); //这里获得的rowData都是一行的数据,获得数据后自行处理,咱们这里只打出来看看效果 $outputArray[] = $rowData[0]; //print_r($rowData); } return $outputArray; }
插入一条数据
/* * 向指定表指定位置插入数据 * @param String|int $sheetIndex,表名或索引 * @param int $row,行 * @param int $col,列 * @param string $value,值 / public function addCellValueByRC($sheetIndex = 0, $row = 0, $col = 0, $value = "") { $inputArray = $this->readSheetBySheet(0); $inputArray[$row - 1][$col - 1] = $value; $objPHPExcel = new PHPExcel(); //实例化一个PHPExcel()对象 try { $objSheet = $objPHPExcel->getActiveSheet(); } catch (PHPExcel_Exception $e) { } //选取当前的sheet对象 $objSheet->setTitle($this->getSheet()); //对当前sheet对象命名 //常规方式:利用setCellValue()填充数据 //$objSheet->setCellValue("A1", "张三")->setCellValue("B1", "李四"); //利用setCellValues()填充数据 /$arrayLength = count($inputArray); $basic = 'A'; for($i = 0;$i<$arrayLength;$i++){ foreach ($inputArray[$i] as $key => $d){ $objSheet->setCellValue($basic.($i+1), $d); $basic++; } $basic = 'A'; }/ //取巧模式:利用fromArray()填充数据 try { $objSheet->fromArray($inputArray); } catch (PHPExcel_Exception $e) { } //利用fromArray()直接一次性填充数据/ try { $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); } catch (PHPExcel_Reader_Exception $e) { } //设定写入excel的类型 try { $objWriter->save($this->getFileName()); } catch (PHPExcel_Writer_Exception $e) { } //保存文件 }