天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php中使用ExcelFileParser處理excel獲得數據(可作批量導入到數據庫使用)

復制代碼 代碼如下:
<!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數據獲取演示</title>
<meta name="Keywords" content="TODO" />
<meta name="Description" content="TODO"/>
</head>
<body>
<div>
<div>Excel數據獲取演示</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>

復制代碼 代碼如下:
<?php
/**
* CopyRight (c) 2009,
* All rights reserved.
* 文件名:
* 摘 要:
*
* @author 星期八 [url=mailto:[email protected]][email protected][/url]
* @version
*/

public function parse()
{
/**
* $_FILES數組說明
* array(n) {
* ["表單文件框名稱"] => array(5) {
* ["name"] => 提交文件名稱
* ["type"] => 提交文件類型 Excel為"application/vnd.ms-excel"
* ["tmp_name"] => 臨時文件名稱
* ["error"] => 錯誤(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);
?>

復制代碼 代碼如下:
<?php
/**
* CopyRight (c) 2009,
* All rights reserved.
* 文件名:excel數據獲取
* 摘 要:
*
* @author 星期八 [url=mailto:[email protected]][email protected][/url]
* @version 0.1
*/
class ExcelParser
{
private $_data=array(0,'');
private $_excel_handle;
private $_excel=array();
/**
* 構造函數
* @param <string> $filename 上傳文件臨時文件名稱
*/
public function __construct($filename)
{
/**
* 引入excelparser類
* 普通方法為
* requires 路徑.'excelparser.php';
*/
import('@.Util.phpExcelParser.excelparser','','.php');
$this->_excel_handle=new ExcelFileParser();
//錯誤獲取
$this->checkErrors($filename);
}
/**
* 錯誤校驗
*/
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:
//無錯誤不處理
break;
case 1:
$this->_data=array(1,'文件讀取錯誤(Linux注意讀寫權限)');
break;
case 2:
$this->_data=array(1,'文件太小');
break;
case 3:
$this->_data=array(1,'讀取Excel表頭失敗');
break;
case 4:
$this->_data=array(1,'文件讀取錯誤');
break;
case 5:
$this->_data=array(1,'文件可能為空');
break;
case 6:
$this->_data=array(1,'文件不完整');
break;
case 7:
$this->_data=array(1,'讀取數據錯誤');
break;
case 8:
$this->_data=array(1,'版本錯誤');
break;
}
unset($error_code);
}
/**
* Excel信息獲取
*/
private function getExcelInfo()
{
if(1==$this->_data[0])return;
/**
* 獲得sheet數量
* 獲得sheet單元對應的行和列
*/
$this->_excel['sheet_number']=count($this->_excel_handle->worksheet['name']);
for($i=0;$i<$this->_excel['sheet_number'];$i++)
{
/**
* 行于列
* 注意:從0開始計數
*/
$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);
}
}
/**
* 中文處理函數
* @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數據獲取
*/
private function getExcelData()
{
if(1==$this->_data[0])return;
//修改標記
$this->_data[0]=1;
//獲取數據
for($i=0;$i<$this->_excel['sheet_number'];$i++)
{
/**
* 對行循環
*/
for($j=0;$j<$this->_excel['row_number'][$i];$j++)
{
/**
* 對列循環
*/
for($k=0;$k<$this->_excel['col_number'][$i];$k++)
{
/**
* array(4) {
* ["type"] => 類型 [0字符類型1整數2浮點數3日期]
* ["font"] => 字體
* ["data"] => 數據
* ...
* }
*/
$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:
//整數
//TODO
break;
case 2:
//浮點數
//TODO
break;
case 3:
//日期
//TODO
break;
}
$this->_data[1][$i][$j][$k]=$data['data'];
unset($data);
}
}
}
}
/**
* 主函數
* @return <array> array(標識符,內容s)
*/
public function main()
{
//Excel信息獲取
$this->getExcelInfo();
//Excel數據獲取
$this->getExcelData();
return $this->_data;
}
}
?>

php技術php中使用ExcelFileParser處理excel獲得數據(可作批量導入到數據庫使用),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 男人J放进女人屁股免费观看 | 欧美jizz19性欧美 | 伊人亚洲综合网色 | 九九在线精品视频 | 一品道门免费视频韩国 | 韩剧19禁啪啪无遮挡大尺度 | 亚洲中文在线精品国产 | 女人一级毛片免费观看 | 免费精品国偷自产在线 | 青草国产超碰人人添人人碱 | 99在线精品免费视频 | 中文字幕人成人乱码亚洲影视S | 日韩hd高清xxxⅹ | 亚洲免费视频在线观看 | 亚洲欧美精品一中文字幕 | 秋霞电影在线观看午夜伦 | 伊人久久大香线蕉综合亚洲 | 好硬好湿好爽再深一点视频 | 午夜想想爱 | 久在线观看福利视频 | 亚洲成人黄色在线 | 国产精品JIZZ在线观看A片 | 亚洲日本一区二区三区在线不卡 | 精品亚洲一区二区在线播放 | 亚洲日韩KKK444KKK聚色 | 强奸美女老师 | 暖暖免费观看日本在线视频 | 伊人精品视频直播 | 国产成人亚洲精品无广告 | 天天躁日日躁狠狠躁中文字幕老牛 | 亲胸摸下面激烈免费网站 | 和尚扒开双腿蹂躏 | 色播播影院 | 小777论坛 | 最近韩国日本免费观看mv免费版 | 97免费视频观看 | 国产精品亚欧美一区二区三区 | 色宅男看片午夜大片免费看 | 欧美精品一区二区蜜臀亚洲 | 污污内射久久一区二区欧美日韩 | 拔擦拔擦8X永久华人免费播放器 |