当前位置: 网学 > 编程文档 > PHP > 正文

php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/21
;_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[$i][$j][$k]=$data[''data''];
unset($data);
}
}
}
}
/**
* 主函数
* @return <array> array(标识符,内容s)
*/
public function main()
{
//Excel信息获取
$this->getExcelInfo();
//Excel数据获取
$this->getExcelData();
return $this->_data;
}
}
?>

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号