在Yii中怎样把excel表格上传到数据库中 20

具体代码,php... 具体代码,php 展开
 我来答
一点设计演示
高粉答主

2015-11-06 · 职场/教育各类模板,衷于原创
一点设计演示
采纳数:874 获赞数:83615

向TA提问 私信TA
展开全部

1.网站中商品一多,肯定需要一键导入功能,有现在成的第三方插件类PHPExcel,可以直接百度搜索进行下载。

2.里面所用到的文件夹主要是Classes这个文件夹。

3.把Classes文件夹改名为PHPExcel,复制整个文件夹到yii项目中的protected/extensions。

4.在定义的方法中需要用到PHPExcel的地方加上这两句代码

/*静用Yii自身的自动加载方法,使PHPExcel自带的autoload生效*/        Yii::$enableIncludePath=false;

        /*引入PHPExcel.php文件*/        Yii::import('application.extensions.PHPExcel.PHPExcel', 1);    

5.最后附上代码,此代码主要针对低版本的excel起效,对excel2007无效,不过大致步骤相同。

前台显示代码

<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"></head><body><form action="./index.php?r=houtai/functions/daoru" method="POST" enctype="multipart/form-data">    <input type="file" name="filename" />    <input type="submit" name="submit" value="sub" /></form></body></html>

控制器代码

    /*     * Excel一键导入功能     */   

 function actionDaoru(){                    /*是否表单提交*/            if(isset($_POST['submit'])){            /*上传excel文件是否成功*/            

$this->upload_file('filename');                        /*文件路径及名称*/            $file=Yii::app()->BasePath."/modules/houtai/data/excels/".$_FILES['filename']['name'];            $this->excelToArray($file);                                }                        $this->renderPartial('Daoru');    }

/*     * 表数据转化为数组 excel 低版本excel,不包括excel2007     */    

function ExcelToArray($file){            /*静用Yii自身的自动加载方法,使PHPExcel自带的autoload生效*/       

 Yii::$enableIncludePath=false;                /*引入PHPExcel.php文件*/        Yii::import('application.extensions.PHPExcel.PHPExcel', 1);                            //echo $file;                /*创建对象,针对Excel2003*/        $objReader=PHPExcel_IOFactory::createReader('Excel5');            /*此属性不明,貌似设置为flase也可以*/        

$objReader->setReadDataOnly(true);            /*加载对象路径*/        $objPHPExcel=$objReader->load($file);            /*获取工作表*/        $objWorksheet=$objPHPExcel->getActiveSheet();    //获得当前活动的工作表,即打开默认显示的那张表        //

$objWorksheet=$objPHPExcel->getSheet(0);    //也可以这样获取,读取第一个表,参数0            /*得到总行数*/        

$highestRow=$objWorksheet->getHighestRow();            /*得到总列数*/        $highestColumn=$objWorksheet->getHighestColumn();        $highestColumnIndex=PHPExcel_Cell::columnIndexFromString($highestColumn);            /*取单元数据进数组*/        

$excelData=array();        

for($row=2;$row<=$highestRow;++$row){            for($col=0;$col<=$highestColumnIndex;++$col){                

$excelData[$row][]=$objWorksheet->getCellByColumnAndRow($col,$row)->getValue();            }        }                    

print_r($excelData);        exit;    }

最后显示的页面是这样子的,导入的excel表中的数据以数组形式显示。

巨优多
2012-10-15 · TA获得超过468个赞
知道小有建树答主
回答量:570
采纳率:50%
帮助的人:341万
展开全部
不管是yii还是别的框架,还是不用框架,你都需要把excel里面的数据一个个的读出来,插入到数据库里面去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式