网站导航
> 资讯中心 > 学习园地 > Tp5.1phpexcel使用(详解)
Tp5.1phpexcel使用(详解)
2021-04-11

1.phpexcel的下载与安装

其实一开始我是被这里绊住了,不知道为什么composer一直下载不下来。翻墙也没有用。

其实我手头是有phpexcel类库的,但是引入不到tp51.框架内:


tp5.1废弃了import和vendor!!!


于是只剩下最后一种办法:


PHP的引入基础:require_once

通过这个方法引入类库:


路径如下:



最重要的一步完成了,接下来便是如何引用了。


1.phpexcel的使用

我们首先来讨论:前端上传Excel文件,控制器读取并输入


首先给出tp51文档:

https://www.kancloud.cn/manual/thinkphp5_1/354121


最中重要的是后端file文件的接受:requert()->file()


然后使用phpexcel加载上传的Excel


$phpExcelObj = \PHPExcel_IOFactory::load($fileName);

1

注意此处的filename为文件路径,$fileName = '/public/upload/excel/'.$info->getSaveName();


我的文件路径:



上完整代码

` public function doUpload()

{

$data = input();

$file = request()->file('excel');

//dump($data);

//考试批次

$batch = $data['batch'];

//班级

$class = $data['class'];

//科目

$subject = $data['subject'];

$info =  $file->validate(['size'=>1048576,'ext'=>'xlsx,xls'])->move('/public/upload/excel');

if($info){

//再batch表创建对应批次

$db = Db::table('batch')->insert(['batch'=>$batch]);

//加载指定文件

$fileName = '/public/upload/excel/'.$info->getSaveName();


$phpExcelObj = \PHPExcel_IOFactory::load($fileName);

$sheet = array();

$sheet[] = $phpExcelObj->getSheet(0)->to[**]rray();

$name = '';

//dump($sheet[0]);

//把表格数据遍历为数组

foreach($sheet[0] as $key=>$value){

if($key!=0){

foreach($value as $k=>$val){

if($k == 0){

$name = $val;

}

if($k == 1){

$score = $val;

}

}

GradeModel::create(['name'=>$name,'score'=>$score,'batch'=>$batch,'class'=>$class,'subject'=>$subject]);

//echo $name.$score.$batch.$class.'<br>';

}

}

$this->view->assign('class',$class);

$this->view->assign('batch',$batch);

$this->view->assign('subject',$subject);

return $this->view->fetch();


}else{

// 上传失败获取错误信息

//echo $file->getError();

return ['status'=>0,'msg'=>'上传失败'];

}

}`

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

48

49

50

51

52

53

54

55

56

57

OK,phpexcel到此为止!


总结:

不要拘泥于既定,勇于尝试新思路新方法

注重php基础,此处用到便是require_once。要记住,任何框架都是基础基础之上!

多与他人交流

这里感谢 小小博客 的指点迷津!


教程:http://edu.51cto.com/center/course/lesson/index?id=259283

————————————————

版权声明:本文为CSDN博主「渐悟_Twany」的原创文章,遵循CC 4.0 BY-S[**]版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_43202364/article/details/86375928