一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - php中使用ExcelFileParser處理excel獲得數(shù)據(jù)(可作批量導(dǎo)入到數(shù)據(jù)庫使用)

php中使用ExcelFileParser處理excel獲得數(shù)據(jù)(可作批量導(dǎo)入到數(shù)據(jù)庫使用)

2019-11-07 12:32php教程網(wǎng) PHP教程

使用ExcelFileParser處理excel獲得數(shù)據(jù) 可以用作批量導(dǎo)入到數(shù)據(jù)庫使用,需要獲取excel數(shù)據(jù)的朋友可以參考下。

代碼如下:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Excel數(shù)據(jù)獲取演示</title> 
<meta name="Keywords" content="TODO" /> 
<meta name="Description" content="TODO"/> 
</head> 
<body> 
<div> 
<div>Excel數(shù)據(jù)獲取演示</div> 
<div> 
<form method="POST" action="/Index/parse" enctype="multipart/form-data"> 
<input type="file" name="excel" value="" /> 
<input type="submit" name="submit" value="提交" /> 
</form> 
</div> 
</div> 
</body> 
</html> 

 

復(fù)制代碼代碼如下:


<?php 
/** 
* CopyRight (c) 2009, 
* All rights reserved. 
* 文件名: 
* 摘 要: 

* @author 星期八 [url=mailto:[email protected]][email protected][/url] 
* @version 
*/ 

public function parse() 

/** 
* $_FILES數(shù)組說明 
* array(n) { 
* ["表單文件框名稱"] => array(5) { 
* ["name"] => 提交文件名稱 
* ["type"] => 提交文件類型 Excel為"application/vnd.ms-excel" 
* ["tmp_name"] => 臨時(shí)文件名稱 
* ["error"] => 錯(cuò)誤(0成功1文件太大超過upload_max_filesize2文件太大超過MAX_FILE3上傳不完整4沒有上傳文件) 
* ["size"] => 文件大小(單位:KB) 
* } 
* } 
*/ 
$return=array(0,''); 
/** 
* 判斷是否提交 
* is_uploaded_file(文件名稱)用于確定指定的文件是否使用POST方法上傳,防止非法提交,通常和move_upload_file一起使用保存上傳文件到指定的路徑 
*/ 
if(!isset($_FILES) || !is_uploaded_file($_FILES['excel']['tmp_name'])) 

$return=array(1,'提交不合法'); 

//處理 
if(0 == $return[0]) 

import('@.Util.ExcelParser'); 
$excel=new ExcelParser($_FILES['excel']['tmp_name']); 
$return=$excel->main(); 

//輸出處理 
print_r($return); 
?> 

 

復(fù)制代碼代碼如下:


<?php 
/** 
* CopyRight (c) 2009, 
* All rights reserved. 
* 文件名:excel數(shù)據(jù)獲取 
* 摘 要: 

* @author 星期八 [url=mailto:[email protected]][email protected][/url] 
* @version 0.1 
*/ 
class ExcelParser 

private $_data=array(0,''); 
private $_excel_handle; 
private $_excel=array(); 
/** 
* 構(gòu)造函數(shù) 
* @param <string> $filename 上傳文件臨時(shí)文件名稱 
*/ 
public function __construct($filename) 

/** 
* 引入excelparser類 
* 普通方法為 
* requires 路徑.'excelparser.php'; 
*/ 
import('@.Util.PHPExcelParser.excelparser','','.php'); 
$this->_excel_handle=new ExcelFileParser(); 
//錯(cuò)誤獲取 
$this->checkErrors($filename); 

/** 
* 錯(cuò)誤校驗(yàn) 
*/ 
private function checkErrors($filename) 

/** 
* 方法一 
*/ 
$error_code=$this->_excel_handle->ParseFromFile($filename); 
/** 
* 方法二 
* $file_handle = fopen($this->_filename,'rb'); 
* $content = fread($file_handle,filesize($this->_filename)); 
* fclose($file_handle); 
* $error_code = $this->_excel->ParseFromString($content); 
* unset($content,$file_handle); 
*/ 
switch($error_code) 

case 0: 
//無錯(cuò)誤不處理 
break; 
case 1: 
$this->_data=array(1,'文件讀取錯(cuò)誤(Linux注意讀寫權(quán)限)'); 
break; 
case 2: 
$this->_data=array(1,'文件太小'); 
break; 
case 3: 
$this->_data=array(1,'讀取Excel表頭失敗'); 
break; 
case 4: 
$this->_data=array(1,'文件讀取錯(cuò)誤'); 
break; 
case 5: 
$this->_data=array(1,'文件可能為空'); 
break; 
case 6: 
$this->_data=array(1,'文件不完整'); 
break; 
case 7: 
$this->_data=array(1,'讀取數(shù)據(jù)錯(cuò)誤'); 
break; 
case 8: 
$this->_data=array(1,'版本錯(cuò)誤'); 
break; 

unset($error_code); 

/** 
* Excel信息獲取 
*/ 
private function getExcelInfo() 

if(1==$this->_data[0])return; 
/** 
* 獲得sheet數(shù)量 
* 獲得sheet單元對(duì)應(yīng)的行和列 
*/ 
$this->_excel['sheet_number']=count($this->_excel_handle->worksheet['name']); 
for($i=0;$i<$this->_excel['sheet_number'];$i++) 

/** 
* 行于列 
* 注意:從0開始計(jì)數(shù) 
*/ 
$row=$this->_excel_handle->worksheet['data'][$i]['max_row']; 
$col=$this->_excel_handle->worksheet['data'][$i]['max_col']; 
$this->_excel['row_number'][$i]=($row==NULL)?0:++$row; 
$this->_excel['col_number'][$i]=($col==NULL)?0:++$col; 
unset($row,$col); 


/** 
* 中文處理函數(shù) 
* @return <string> 
*/ 
private function uc2html($str) 

$ret = ''; 
for( $i=0; $i<strlen($str)/2; $i++ ) 

$charcode = ord($str[$i*2])+256*ord($str[$i*2+1]); 
$ret .= '&#'.$charcode.';'; 

return mb_convert_encoding($ret,'UTF-8','HTML-ENTITIES'); 

/** 
* Excel數(shù)據(jù)獲取 
*/ 
private function getExcelData() 

if(1==$this->_data[0])return; 
//修改標(biāo)記 
$this->_data[0]=1; 
//獲取數(shù)據(jù) 
for($i=0;$i<$this->_excel['sheet_number'];$i++) 

/** 
* 對(duì)行循環(huán) 
*/ 
for($j=0;$j<$this->_excel['row_number'][$i];$j++) 

/** 
* 對(duì)列循環(huán) 
*/ 
for($k=0;$k<$this->_excel['col_number'][$i];$k++) 

/** 
* array(4) { 
* ["type"] => 類型 [0字符類型1整數(shù)2浮點(diǎn)數(shù)3日期] 
* ["font"] => 字體 
* ["data"] => 數(shù)據(jù) 
* ... 
* } 
*/ 
$data=$this->_excel_handle->worksheet['data'][$i]['cell'][$j][$k]; 
switch($data['type']) 

case 0: 
//字符類型 
if($this->_excel_handle->sst['unicode'][$data['data']]) 

//中文處理 
$data['data'] = $this->uc2html($this->_excel_handle->sst['data'][$data['data']]); 

else 

$data['data'] = $this->_excel_handle->sst['data'][$data['data']]; 

break; 
case 1: 
//整數(shù) 
//TODO 
break; 
case 2: 
//浮點(diǎn)數(shù) 
//TODO 
break; 
case 3: 
//日期 
//TODO 
break; 

$this->_data[1][$i][$j][$k]=$data['data']; 
unset($data); 




/** 
* 主函數(shù) 
* @return <array> array(標(biāo)識(shí)符,內(nèi)容s) 
*/ 
public function main() 

//Excel信息獲取 
$this->getExcelInfo(); 
//Excel數(shù)據(jù)獲取 
$this->getExcelData(); 
return $this->_data; 


?> 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品久久7777777 | 国产美女亚洲精品久久久综合 | 欧美亚洲天堂网 | 99在线视频精品费观看视 | chinesexxxxhd人妖| bb18lv黑料正能量 | 欧美国产精品久久 | 四虎影视884aa·com | 国产免费一区不卡在线 | 国产成人综合网 | 2019aw网站| 国产精品福利在线观看免费不卡 | 小向美奈子av | 欧美日韩国产成人精品 | 成人啪精品视频免费网站 | 国产一级精品高清一级毛片 | 私人黄色| 麻豆亚洲一区 | 欧美日韩一区二区三区韩大 | 欧美视频一区二区三区在线观看 | 很黄的网站在线观看 | 亚洲激情网站 | 色老板美国在线观看 | 欧美特级午夜一区二区三区 | freexxx性欧美3d动漫 | 91制片厂果冻传媒杨柳作品 | 日韩在线成人 | 亚洲无线一二三区2021 | 亚洲国产精品久久精品成人网站 | 99re这里只有精品在线观看 | 蜜柚精彩在线观看 | 视频一区二区三区在线 | 色哟约 | 91美女在线观看 | 亚洲精品91香蕉综合区 | 日本男男gayxxxxx免费 | 国产精品国产三级在线专区 | 久久中文字幕免费高清 | 美女国内精品自产拍在线播放 | 欧美久久天天综合香蕉伊 | 双性肉文高h |