/**
* 读取指定Excel文件里的数据
* @param [string] $file [Excel文件地址]
* @return [array] $data [返回的数组数据]
*/
function import_excel($file){
// 判断文件是什么格式
$type = pathinfo($file);
$type = strtolower($type["extension"]);
//$type=$type==='csv' ? $type : 'Excel5';
ini_set('max_execution_time', '0');
Vendor('PHPExcel.PHPExcel');
Vendor('PHPExcel.PHPExcel.IOFactory');
Vendor("PHPExcel.PHPExcel.Shared.Date");
$shared = new \PHPExcel_Shared_Date();
// 判断使用哪种格式
if($type=='xls'){
$objReader = PHPExcel_IOFactory::createReader('Excel5');
}elseif($type=='xlsx'){
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
}elseif($type=='csv'){
$objReader = PHPExcel_IOFactory::createReader('CSV');
}
//$objReader = PHPExcel_IOFactory::createReader($type);
$objPHPExcel = $objReader->load($file);
$sheet = $objPHPExcel->getSheet(0);
// 取得总行数
$highestRow = $sheet->getHighestRow();
// 取得总列数
$highestColumn = $sheet->getHighestColumn();
//循环读取excel文件,读取一条,插入一条
$data=array();
//从第一行开始读取数据
$highestColumn=++$highestColumn;
for($j=1;$j<=$highestRow;$j++){
//从A列读取数据
for($k='A';$k!=$highestColumn;$k++){
$cell = $objPHPExcel->getActiveSheet()->getCell("$k$j");
$dataType = $cell->getDataType();
if($dataType == PHPExcel_Cell_DataType::TYPE_NUMERIC){
$cellstyleformat = $cell->getStyle()->getNumberFormat();
$formatcode = $cellstyleformat->getFormatCode();
if (preg_match('/^(\[\$[A-Z]*-[0-9A-F]*\])*[hmsdy]/i', $formatcode)) {
$data[$j][] = gmdate("Y-m-d", $shared->ExcelToPHP($objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()));
}else{
$data[$j][] = is_object($objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()) ? $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()->__toString() : $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue();
}
}else{
// 读取单元格
$data[$j][] = is_object($objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()) ? $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()->__toString() : $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue();
}
}
}
return $data;
}
PHPExcel读取表格内容,支持三种表格格式,同时对时间和对象都进行了处理
最新推荐文章于 2024-07-31 11:01:16 发布