200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)【PHP】

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

时间:2023-11-18 12:05:25

相关推荐

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

后端开发|php教程

ExcelFileParser,excel

后端开发-php教程

llrp协议源码,ubuntu 终端无反应,骷髅爬虫吃人图片,php 转运,宜昌seo公司lzw

Excel数据获取演示

Excel数据获取演示

全网首发仿下下片网站源码,vscode直接搜索方法,ubuntu 写ios,tomcat请求图,sqlite3 多表查询,asp网站漏洞修复插件,前端支持H5的好框架,用别人的爬虫违法吗,php统计源码,吉林专业seo优化,网页制作素材网站html,简单三列网页模板,导购模板下载lzw

<?php

/**

* CopyRight (c) ,

* All rights reserved.

* 文件名:

* 摘 要:

*

* @author 星期八 [url=mailto:ixqbar@]ixqbar@[/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][ mp_name]))

{

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

}

//处理

if(0 == $return[0])

{

import(@.Util.ExcelParser);

$excel=new ExcelParser($_FILES[excel][ mp_name]);

$return=$excel->main();

}

//输出处理

print_r($return);

?>

<?php

/**

* CopyRight (c) ,

* All rights reserved.

* 文件名:excel数据获取

* 摘 要:

*

* @author 星期八 [url=mailto:ixqbar@]ixqbar@[/url]

* @version 0.1

*/

class ExcelParser

{

private $_data=array(0,\);

private $_excel_handle;

private $_excel=array();

/**

* 构造函数

* @param $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, b);

* $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[ ame]);

for($i=0;$i_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[ ow_number][$i]=($row==NULL)?0:++$row;

$this->_excel[col_number][$i]=($col==NULL)?0:++$col;

unset($row,$col);

}

}

/**

* 中文处理函数

* @return

*/

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_excel[sheet_number];$i++)

{

/**

* 对行循环

*/

for($j=0;$j_excel[ ow_number][$i];$j++)

{

/**

* 对列循环

*/

for($k=0;$k_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[ ype])

{

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(标识符,内容s)

*/

public function main()

{

//Excel信息获取

$this->getExcelInfo();

//Excel数据获取

$this->getExcelData();

return $this->_data;

}

}

?>

快问医生平台源码,vscode怎么运行sjn,ubuntu跳出终端,建立简单的tomcat,使用sqlite3存储代码,高级爬虫工程师需要会什么,笑话php源码,如何写seo新闻,生物公司网站源码,更新栏目 模板文件不存在 无法解析文档lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。