搜索
系统检测到您的用户名不符合规范:

ThinkPHP+JUI(DWZ)实现excel导入

浏览:4448 发布日期:2014年04月13日 分类:技术分享 关键字: thinkphp jui dwz excel
前端界面代码:<div class="pageContent">
<form enctype="multipart/form-data" method="post" action="{:U(GROUP_NAME.'/School/importHandle')}" class="pageForm required-validate" onsubmit="return iframeCallback(this,navTabAjaxDone);">
<div class="pageFormContent" layoutH="58">
<div class="unit">
<label>选择Excel文件:</label>
<input type="file" name="file_stu"/>
</div>
<span style="color: #0000FF;margin-left: 80px;">备注:可以上传Microsoft Excel 2003格式的文件(文件名为*.xls),文件大小小于1M。</span>
</div>
<div class="formBar">
<ul>
<li><div class="buttonActive"><div class="buttonContent"><button type="submit">保存</button></div></div></li>
<li><div class="button"><div class="buttonContent"><button type="button" class="close">取消</button></div></div></li>
</ul>
</div>
</form>
服务器上的处理代码://导入学校名单
public function import(){
$this->display();
}
//处理导入学校名单
public function importHandle(){
if (IS_POST){
import('ORG.Net.UploadFile');
$savePath='./data/school/';//上传目录
@chmod("$savePath",0777);//设置目录可写
$upload=new UploadFile();
$upload->maxSize=1000000;//上传附件大小,1M=1000000
$upload->allowExts=array('xls');//上传附件格式
$upload->savePath=$savePath;//上传目录,相对于单入口文件
$upload->saveRule='time';//上传文件命名规则

if($upload->upload()){
$info=$upload->getUploadFileInfo();
$file_name=$info[0]['savename'];//获取上传后的新文件名
}else{
echo json_encode(array(
'statusCode'=>'300',
'message'=>'文件上传失败',
'navTabId'=>'school',
'callbackType'=>'',
'forwardUrl'=>''
));
}
/*

*对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的ExcelToArray类中

注意:这里调用执行了第三步类里面的read函数,把Excel转化为数组并返回给$res,再进行数据库写入

*/
$res = $this->read ( $savePath . $file_name );
/*
重要代码 解决Thinkphp M、D方法不能调用的问题

如果在thinkphp中遇到M 、D方法失效时就加入下面一句代码

*/
//spl_autoload_register ( array ('Think', 'autoload' ) );

/*对生成的数组进行数据库的写入*/
foreach ( $res as $k => $v )
{
if ($k != 0)
{
$data ['areaid'] = $v[0];
$data ['school'] = $v[1];
$data ['schoolid'] = $v[2];
$result = M ( 'School' )->add ( $data );
if (!$result)
{
echo json_encode(array(
'statusCode'=>'300',
'message'=>'导入数据库失败',
'navTabId'=>'school',
'callbackType'=>'',
'forwardUrl'=>''
));
}
}
}
echo json_encode(array(
'statusCode'=>'200',
'message'=>'操作成功,请关闭上传窗口',
'navTabId'=>'school',
'callbackType'=>'',
'forwardUrl'=>''
));
}
}
//读取excel表
public function read($filename,$encode='utf-8'){
vendor('Excel.PHPExcel');
$objReader = PHPExcel_IOFactory::createReader(Excel5);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($filename);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$excelData = array();
for ($row = 1; $row <= $highestRow; $row++) {
for ($col = 0; $col < $highestColumnIndex; $col++) {
$excelData[$row][] =(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
}
}
return $excelData;
}
希望对大家有帮助,共同支持thinkphp发展,创造好的技术交流平台。
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
liangkaihua
积分:3174 等级:LV4
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /