赛亿提成统计系统

Sales.php 2.9KB

    <?php namespace app\index\model; require_once(VENDOR . '\phpoffice\PHPExcel\IOFactory.php'); class Sales { private $excel; public $salesData; public function __construct() { $this->excel = \PHPExcel_IOFactory::load(EcexlPath); $this->getSalesData(); } /** * 获取所有工作表名 */ private function getSheetNames() { $this->sheet_namas = $this->excel->getSheetNames(); } /** * 获取第一个 sheet 的所有数据 */ private function getFirstSheets() { // // 获取所有工作表名 // $this->getSheetNames(); // //根据表名切换当前工作表 // $this->excel->setActiveSheetIndexByName($this->first_sheet_name); // //得到当前工作表对象 // $curSheet = $this->excel->getActiveSheet(); // 第一个sheet $curSheet = $this->excel->getSheet(0); // //获取当前工作表最大行数 // $rows = $curSheet->getHighestRow(); // //获取当前工作表最大列数,返回的是最大的列名,如:B // $cols = $curSheet->getHighestColumn(); // //将当前工作表名当键,内容为值存入数组 // $data = []; // //大写字母A的ASCII值是65 A-Z对应65-90 // // for($j = 'A'; $j <= $cols; $j++ ){ // // for($k = 1; $k <= $rows; $k++){ // // $key = $j.$k; // // $value = $curSheet->getCell($key)->getValue(); // // $data[$key] = $value; // // } // // } 结果为一维数组 // 调用 PHPExcel_Worksheet toArray 方法 $this->data = $curSheet->toArray(); } public function getSheetData($index = 0) { $curSheet = $this->excel->getSheet($index); $data = $curSheet->toArray(); return $data; } private function getSalesData() { $curSheet = $this->excel->getSheet(0); // 调用 PHPExcel_Worksheet toArray 方法 // return $curSheet->toArray(); // 数据量大时太慢,太卡 // //获取当前工作表最大行数 $rows = $curSheet->getHighestRow(); // //获取当前工作表最大列数,返回的是最大的列名,如:B // $cols = $curSheet->getHighestColumn(); $data = []; for ($k=2; $k <= $rows ; $k++) { // 第一行图标忽略 $row = []; // 大写字母A的ASCII值是65 A-Z对应65-90 for($j = 'A'; $j <= 'P'; $j++ ){ // 有用的数据只到 P $key = $j.$k; // $value = $curSheet->getCell($key)->getValue(); // 含公式 $row[] = trim($curSheet->getCell($key)->getFormattedValue()); // 公式计算后的值 } array_push($row, $k); $data[] = $row; } $this->salesData = $data; $data = null; // 清空数据 } }