php利用ExcelParser 导入excel存入mysql 数据库

php教程 导入excel存入mysql教程 数据库教程, 利用ExcelParser
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,'www.jzread.com读取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;
    }
}

?>

时间: 2024-10-09 04:33:02

php利用ExcelParser 导入excel存入mysql 数据库的相关文章

php 导入excel存入mysql 数据库, 利用ExcelParser

class ExcelParser {     private $_data=array(0,'');     private $_excel_handle;     private $_excel=array();     /**      * 构造函数      * @param <string> $filename 上传文件临时文件名称      */     public function __construct($filename)     {         /**        

php 导入excel文件mysql数据库方法

先下载 下载phpexcel文件,地址:phpexcel.codeplex.com/ 在reader.php文件中找到以下类似代码(第一行既是),改成正确的oleread.php路径即可:require_once 'oleread.php'; 然后新建一个php文件引入reader.php, 代码如下:  代码如下 复制代码 <?php require_once 'Excel/reader.php'; $data = new Spreadsheet_Excel_Reader(); $data->

利用Spark解析Tomcat日志,并将统计结果存入Mysql数据库

本文试图实现的需求场景为:以学习Spark知识点为目的,编写Scala利用Spark解析800M的tomcat日志文件,打印一段时间内ERROR级别记录的前10行,统计每分钟的日志记录数,并将统计结果存入mysql数据库中.之前曾用JAVA写过一次同样的处理逻辑,但在学习了Scala之后,真的感觉在计算方面Scala要比JAVA方便的多.没有学习Scala语言的同学速度速度了啊-- 技术要点 将日志文件写入HDFS中,相对路径PATH为"nova.log" 注意JAVA堆栈异常日志的处

tomcat-接收到的tcp数据怎么存入mysql数据库,并显示在Tomcat服务器上

问题描述 接收到的tcp数据怎么存入mysql数据库,并显示在Tomcat服务器上 怎么在TOMCAT服务器中编程接收tcp数据(通过GPRS模块发送的),并将接收的数据存入Mysql数据库中,最终显示在TOMCAT服务器的网站中

jsp mysql-jsp页面获得的数据存入mysql数据库之后出现乱码怎么办?

问题描述 jsp页面获得的数据存入mysql数据库之后出现乱码怎么办? 如题,且jsp和mysql的编码都已经设置成utf-8了而且String equipment=request.getParameter(""chance_equipment""); String state=""未指派"";页面获得的中文数据存储不正常,是乱码,我自己定义的state却正常显示 解决方案 在页面编码,数据库编码方式都统一的情况下,还有一个r

php将图片保存入mysql数据库失败的解决方法_php技巧

本文实例分析了php将图片保存入mysql数据库失败的解决方法.分享给大家供大家参考.具体分析如下: 图片保存数据库并不是一个明智的做法,我们多半是把图片保存到服务器,然后把图片地址保存到数据库,这样我们每次只要读出图片地址就可以显示了,但下面我还是来介绍一个图片保存到mysql数据库的问题解决办法,代码如下: 复制代码 代码如下: require 'class/db.php'; $fileName = "a1.jpg"; $fp = fopen($fileName, "r&

导入 excel 数据到数据库

问题描述 导入excel数据到数据库,一般都需要要求固定格式,导入前验证格式是否正确数据是否正确.关于空白行一般是由于将excel删除时只删除了数据未删除行造成的,怎么可以处理一下????能运行的具体代码?谢谢usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Data.O

用Jena将本体文件存入MySQL数据库的实现方法_Mysql

昨天对其配置了一天,其配置为Jena 2.4.0,MySQL数据库版本为5.1.42-community,JDK版本为1.6.0,MySQLdriver为mysql-connector-java-3.1.14: 并按照网络上的资源编写了一个例子,结果出现了一个问题,程序在debug到 使用数据库连接参数创建一个模型制造器 ModelMaker maker = ModelFactory.createModelRDBMaker(conn); 创建一个默认模型,命名为 MyOntology Model

sql语句导入excel到db2数据库

sql语句导入excel到db2数据库教程 //方法一 sql语句导入excel到db2数据库 import   from   "c:booknow.csv"   of   del   messages   "d:msg.out"     insert   into   lw_bin export   to   table.txt   of   del   modified   by   coldel,   select   *   from   table //方