## phpexcel導入
# 首先下載phpexcel包放入如下文件

### 在controller.php需要使用的
use PHPExcel_IOFactory;
use PHPExcel;
use PHPExcel_Shared_Date;
use PHPExcel_Cell_DataType;
###
導入功能
$yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
$orderSn = $yCode[intval(date('Y')) - 2011] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -6) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 999));//入庫單號18位
vendor("PHPExcel.PHPExcel");
$objPHPExcel = new PHPExcel();
if (! empty ( $_FILES ['file'] ['name'] ))
{
$tmp_file = $_FILES ['file'] ['tmp_name'];
$file_types = explode ( ".", $_FILES ['file'] ['name'] );
$file_type = $file_types [count ( $file_types ) - 1];
/*判別是不是.xls文件,判別是不是excel文件*/
if (strtolower ( $file_type ) != "xls"&&strtolower ( $file_type ) != "xlsx")
{
$this->error ( '不是Excel文件,重新上傳' );
}
/*設置上傳路徑*/
$savePath = ROOT_PATH. '/public/excel/';
/*以時間來命名上傳的文件*/
$str = date ( 'Ymdhis' );
$file_name = $str . "." . $file_type;
/*是否上傳成功*/
if (! copy ( $tmp_file, $savePath . $file_name ))
{
$this->error ( '上傳失敗' );
}
}
$extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));//判斷導入表格后綴格式
if($extension == 'xlsx') {
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel =$objReader->load($savePath.$file_name, $encode = 'utf-8');
}else if($extension == 'xls'){
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel =$objReader->load($savePath.$file_name, $encode = 'utf-8');
}
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();//取得總行數
$highestColumn = $sheet->getHighestColumn(); //取得總列數
for($i = 2; $i <= $highestRow; $i++){
$score=array();
$cell = $sheet->getCellByColumnAndRow(0, $i);
$value = $cell->getValue();
$score['create_time']=$objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue();
$score['standard_time'] =$objPHPExcel->getActiveSheet()->getCell("K".$i)->getValue();
if ($cell->getDataType()==PHPExcel_Cell_DataType::TYPE_NUMERIC) {
$cellstyleformat=$cell->getStyle()->getNumberFormat(); //獲取cell類型
$formatcode=$cellstyleformat->getFormatCode(); //獲取cell格式代碼,時間格式為mm-dd-yy
if (preg_match('/^(/[/$[A-Z]*-[0-9A-F]*/])*[hmsdy]/i', $formatcode)){
$score['create_time'] = gmdate("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($value));
$score['standard_time'] = gmdate("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($value));
}else{
$score['create_time'] = PHPExcel_Style_NumberFormat::toFormattedString($value,$formatcode);
$score['standard_time'] = gmdate("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($value));
}
}
}
### 業務邏輯自己根據項目需求去寫