EXCEL表格轉換成json資料工具
阿新 • • 發佈:2019-01-30
<?php
/*
* 將excel轉換為陣列 by aibhsc
* */
ini_set('max_execution_time', '0');
require('PHPExcel.php');//引入PHP EXCEL類
function dump($data){
echo '<pre>';
print_r($data);
echo '</pre>';
}
function format_excel2array($filePath='',$sheet=0){
if(empty($filePath) or !file_exists($filePath )){die('file not exists');}
$PHPReader = new PHPExcel_Reader_Excel2007(); //建立reader物件
if(!$PHPReader->canRead($filePath)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filePath)){
echo 'no Excel' ;
return ;
}
}
$PHPExcel = $PHPReader->load($filePath); //建立excel物件
$currentSheet = $PHPExcel->getSheet($sheet); //**讀取excel檔案中的指定工作表*/
$allColumn = $currentSheet->getHighestColumn(); //**取得最大的列號*/
$allRow = $currentSheet->getHighestRow(); //**取得一共有多少行*/
$data = array();
for($rowIndex=1;$rowIndex<=$allRow;$rowIndex++){ //迴圈讀取每個單元格的內容。注意行從1開始,列從A開始
for($colIndex='A';$colIndex<=$allColumn;$colIndex++){
$addr = $colIndex.$rowIndex;
$cell = $currentSheet->getCell($addr)->getValue();
if($cell instanceof PHPExcel_RichText){ //富文字轉換字串
$cell = $cell->__toString();
}
$data[$rowIndex][$colIndex] = $cell;
}
}
return $data;
}
function getUrl($str) {
preg_match("/href=\"(.*)\" /", $str, $a);
return $a[1];
}
function mvtags($str){
$str = implode('|rencongcong,',$str);
$str = strip_tags($str,'<p><br/><br>');
$str = explode('|rencongcong,',$str);
return $str;
}
$arr = format_excel2array('./asp.xls');
$title = implode(',',$arr[1]);
$db = array();
foreach($arr as $k=>$v){
$str = $v;
$v = mvtags($v);
$db[$k]['title'] = $v['0'];
$db[$k]['time'] = $v['1'];
$db[$k]['node_id'] = $v['2'];
$db[$k]['content'] = $v['3'];
$db[$k]['uid'] = $v['4'];
$db[$k]['homepage'] = getUrl($str['F']);
$db[$k]['demo'] = getUrl($str['G']);
$db[$k]['download'] = $v['7'];
}
$db = json_encode($db,true);
file_put_contents('./asp.json',$db,FILE_APPEND);
?>