基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据

2025-05-29 0 79

废话不多说,直接给大家贴代码了,代码附有注释,相信大家都能看懂的,有不明白的地方欢迎给我留言。

前端HTML+JQuery 备注Jquery需要1.x版本,不能用2.x版本

1.引入必要文件及上传input

?

1

2

3

4
<load file="__PUBLIC__/js/jquery-1.11.3.min.js" />

<load file="__PUBLIC__/uploadify/jquery.uploadify.min.js" />

<load file="__PUBLIC__/uploadify/uploadify.css" />

<input type="file" class="" id="student" name="student">

2.uploadify使用操作

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47
<script>

$(function(){

//ThinkPHP上传地址

var upload = "{:U(MODULE_NAME.'/Student/upload')}";

//ThinkPHP sessionID的提交变量

//'VAR_SESSION_ID'=>'session_id',在ThinkPHP/Conf/convention.php中进行配置,默认关闭的需要开启

var sid = '{:session_id()}';

//导入数据地址

var daoruUrl = "{:U(MODULE_NAME.'/Student/daoruHandle')}"

//Amaze ui 模态框

var modal = $('#my-modal-loading');

//uploadify使用方法

$('#student').uploadify({

'swf' : '__PUBLIC__/uploadify/uploadify.swf',

'uploader' : upload,

'buttonText' : '选择文件...',

'width':120,

'height':30,

'formData':{'session_id':sid},

'fileTypeExts':'*.xls',

//开始上传弹出模态框

'onUploadStart' : function(file) {

$('#alert-content').html('正在上传文件');

modal.modal();

},

//上传成功关闭模态框,并用后台函数导入数据

'onUploadSuccess':function(file, data, response){

$('#alert-content').html('正在导入数据');

data = eval("("+data+")");

$.ajax({

type: 'POST',

url: daoruUrl,

data: {'file':data.file},

success: function(retdata){

modal.modal('close');

if(retdata==1){

alert('导入成功');

}else{

alert('导入失败');

}

},

dataType: 'json'

});

}

});

});

</script>

3、ThinkPHP控制器上传操作:备注需要引入Upload.class.php空间

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24
function upload(){

$config = array(

'maxSize' => 3145728,

'rootPath' => './Uploads/',

'savePath' => '',

'saveName' => array('uniqid',''),

'exts' => array('xls'),

'autoSub' => true,

'subName' => array('date','Ymd'),

);

$upload = new Upload($config);

// 上传文件

$info = $upload->upload();

if(!$info) {// 上传错误提示错误信息

$this->error($upload->getError());

}else{// 上传成功 获取上传文件信息

$file = $info['Filedata']['savepath'].$info['Filedata']['savename'];

}

//p($info);

$data = array(

'file'=>'./Uploads/'.$file,

);

echo json_encode($data);

}

4.导入数据进去mysql

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15
//导入数据处理

function daoruHandle(){

$file = I('file');

$excelData = excel_to_mysql($file);

foreach($excelData['data'] as $row){

$data = array(

'xuehao'=>$row['xuehao'],

'xingming'=>$row['xingming'],

'xingbie'=>($row['xingbie']=='男')?1:0,

'mima'=>md5($row['mima']),

);

M('student')->add($data);

}

echo 1;

}

5.PHPExcel读取Excel文件返回数据函数

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42
function excel_to_mysql($file){

//导入PHPExcel第三方类库

//vendor('PHPExcel.PHPExcel');

import('Classes.PHPExcel',COMMON_PATH,'.php');

//实例化PHPExcel类,用于接收Excel文件

$PHPExcel = new PHPExcel();

//读取Excel文件类实例化

$PHPReader = new PHPExcel_reader_Excel5();

//检测Excel版本是否可读

if(!$PHPReader->canRead($file)){

$PHPReader = new PHPExcel_Reader_Excel2007();

if(!$PHPReader->canRead($file)) return array('error'=>1);//未知版本的Excel

}

//读取Excel文件

$PHPExcel = $PHPReader->load($file);

//获得Excel中表的数量

$sheetCount = $PHPExcel->getSheetCount();

//获得第一张工作表

$sheet=$PHPExcel->getSheet(0);

//获得表中最大数据列名

$column = $sheet->getHighestColumn();

//获得表中最大数据行名

$row = $sheet->getHighestRow();

//循环获得表中数据

for($i=1;$i<=$row;$i++){

$data[] = array(

//通过工作表对象的getCell方法获得单元格 getValue方法获得该单元格数值

'xuehao'=>$sheet->getCell('A'.$i)->getValue(),

'xingming'=>$sheet->getCell('B'.$i)->getValue(),

'xingbie'=>$sheet->getCell('C'.$i)->getValue(),

'mima'=>$sheet->getCell('D'.$i)->getValue(),

);

}

//释放工作表对象

unset($sheet);

//释放读取Excel文件对象

unset($PHPReader);

//释放Excel文件对象

unset($PHPExcel);

//返回数据

return array('error'=>0,'data'=>$data);

}

通过以上代码实现了ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据,希望对大家有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据 https://www.kuaiidc.com/100938.html

相关文章

发表评论
暂无评论