ExcelFileParser处理excel获得数据 可作批量导入到数据库
提交表单
提交处理
[php]
/**
* CopyRight (c) 2009,
* All Rights Reserved.
* ファイル名:
* 要約:
*
* @author Saturday ixqbar@hotmail.com
* @version
*/
class IndexAction extends Action
{
/**
* コンストラクター
*/
public function __construct()
{
parent::__construct();
}
/**
* デフォルトのインデックス ページ
*/
public functionindex()
{
$this->display();
}
/**
* 処理のために送信します
*/
public function parse()
{
/**["type"] => upload_max_filesize2ファイルが大きすぎてmax_file3不完全なアップロード4ファイルアップロードなし)*/
$return=array(0,'');
/**
*/
if( !isset($_FILES) || !is_uploaded_file($_FILES['excel']['tmp_name']))
{
$return=array(1,'提交不法');
}
//处理
の場合(0 == $return[0])
{
import('@.Util.ExcelParser');
$excel=new ExcelParser($_FILES['excel']['tmp_name']);
$return=$ Excel->main();
}
//输出处理
print_r($return);
}
}
?>
[/php]
处理类 //修改标记
[php]
/**
* CopyRight (c) 2009,
* All Rights Reserved.
* ファイル名: Excel データ取得
* 要約:
*
* @author Saturday ixqbar@hotmail.com
* @version 0.1
*/
class ExcelParser
{
private $_data=array(0,'');
private $_excel_handle;
private $_excel=array ();
/**
* コンストラクター
* @param
*/
public function __construct($filename)
{
/**
*/
import('@.Util.PHPExcelParser.excelparser','','.php ');
$this->_excel_handle=new ExcelFileParser();
//错误获取
$this->checkErrors($filename);
}
/**
* エラーチェック中
*/
プライベート関数 checkError s($ファイル名)
{
/**
* 方法 1
*/
$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注意读写权限)');
ブレーク;
ケース 2 :
$this->_data=array(1,'文件太小');
Break;
case 3:
$this->_data=array(1,'读取Excel表头失败');
Break;
ケース 4:
$this->data=array(1,'文件读取错误');
ケース 5:
$this->_data=array(1,'文件は空の可能性があります');
休憩;
ケース 6:
$this->_data=array(1,'文件不完整');
Break;
case 7:
$this->_data=array(1,'读取データ错误');
休憩;
ケース8:
$this->_data=array(1,'版本错误');
ブレーク;
}
unset($error_code);
}
/**
* Excel情報取得
*/
プライベート関数 getExcelInfo()
{
if(1==$this->_data[0])return;
/**
* シート数を取得します
* シート単位に対応する行と列を取得します
*/
$this->_excel['sheet_number']=count($this->gt;_excel_handle- >worksheet['name']);
for($i=0;$i<$this->_excel['sheet_number'];$i++)
{
/**
*/
$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
*/
プライベート関数 uc2html($str)
{
$ret = '';
for( $i=0; $i
$charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
$ret .= ''.$charcode。 ';';
}
return mb_convert_encoding($ret,'UTF-8','HTML-ENTITIES');
}
/**
* Excelデータ取得
*/
プライベート関数 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++)
{
/**
*配列(4){t;*/
$data=$this-> ;_excel_handle->worksheet['data'][$i]['cell'][$j][$k];
switch($data['type'])
{
ケース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']]];
ケース 1:
//TODO
[$j][$k] = $data['data'];
public function main()
{
//Excel 情報を取得
'''''''''''''''''' 「アウト」アウト「」アウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトout outole outole right outole rightole rightole rightole rightpsy rightole right way way way right way waymb rightmbmb way waymbps outmbmbmb out outmb out to out out out out out out out out out スルー アウト オーバー スルー スルー スルー スルー スルー スルー スルー スルー スルースルースルースルースルースルー右-------- 🎉
に戻るための訴訟代理
http://www.bkjia.com/PHPjc/444996.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/444996.html
技術記事
ExcelFileParser は Excel を処理してデータを取得し、そのデータをバッチでデータベースにインポートしてフォームを送信できます。 DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/ DTD/xhtml...