PHPExcel是一個PHP類庫,用來幫助咱們簡單、高效實現從Excel讀取Excel的數據和導出數據到Excel。php
首先下載壓縮包:html
https://codeload.github.com/PHPOffice/PHPExcel/zip/1.8git
解壓後以下:github
在根目錄建立一個test.php用來讀取excel的內容 excel文件的內容以下:數組
而後test.php代碼以下:ide
<?php
header("content-type:text/html;charset=utf8");
include './Classes/PHPExcel/IOFactory.php';//引入PHPExcel類
$inputFileName = './test.xls';//讀取的excel文件
date_default_timezone_set('PRC');
// 讀取excel文件
try {
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);
} catch(Exception $e) {
die('加載文件發生錯誤:"'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}
$sheet = $objPHPExcel->getSheet(0);
$data=$sheet->toArray();//該方法讀取不到圖片 圖片需單獨處理
$imageFilePath='./images/'.date('Y-m-d').'/';//圖片在本地存儲的路徑
if (! file_exists ( $imageFilePath )) {
mkdir("$imageFilePath", 0777, true);
}
//處理圖片
foreach($sheet->getDrawingCollection() as $img) {
list($startColumn,$startRow)= PHPExcel_Cell::coordinateFromString($img->getCoordinates());//獲取圖片所在行和列
$imageFileName = $img->getCoordinates() . mt_rand(100, 999);
switch($img->getMimeType()) {
case 'image/jpg':
$imageFileName.='.jpg';
imagejpeg($img->getImageResource(),$imageFilePath.$imageFileName);
break;
case 'image/gif':
$imageFileName.='.gif';
imagegif($img->getImageResource(),$imageFilePath.$imageFileName);
break;
case 'image/png':
$imageFileName.='.png';
imagepng($img->getImageResource(),$imageFilePath.$imageFileName);
break;
}
$startColumn = ABC2decimal($startColumn);//因爲圖片所在位置的列號爲字母,轉化爲數字
$data[$startRow-1][$startColumn]=$imageFilePath.$imageFileName;//把圖片插入到數組中
}
print_r($data);die;
function ABC2decimal($abc){
$ten = 0;
$len = strlen($abc);
for($i=1;$i<=$len;$i++){
$char = substr($abc,0-$i,1);//反向獲取單個字符
$int = ord($char);
$ten += ($int-65)*pow(26,$i-1);
}
return $ten;
}
以上代碼只是處理圖片,獲得圖片路徑插入到數組中,如需數據入庫,可循環insert,自行處理,打印結果以下: