ThinkPHP6中如何进行Excel导入和导出?

来源:undefined 2024-12-28 01:52:15 1048

随着互联网应用日益普及,以及各类数据之间的相互交互和数据转移需求的不断增长,文件格式的转换和导入导出已成为常见需求之一。在web应用程序中,导入和导出excel文件是日常工作中常见的数据交換方式。本文将介绍如何在thinkphp6框架中实现excel导入导出功能。

一、 ThinkPHP6框架介绍

ThinkPHP6是一个自由、开源、快速、简单的面向对象的轻量级PHP框架。它具有高性能、丰富的功能、灵活的配置、强大的扩展性等特点,已经成为PHP应用开发领域的一个热门框架。

二、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

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

<?php namespace appindexcontroller;

use PHPExcel;

use PHPExcel_IOFactory;

class ExcelExport

{

public function export()

{

$objPHPExcel = new PHPExcel();

// 设置当前活动sheet

$objPHPExcel->setActiveSheetIndex(0);

// 设置标题

$objPHPExcel-&gt;getActiveSheet()-&gt;setTitle(学生成绩);

// 设置表头

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(A1, 学号);

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(B1, 姓名);

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(C1, 语文);

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(D1, 数学);

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(E1, 英语);

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(F1, 总分);

// 设置数据

$data = [

[1001, 张三, 85, 90, 88, 263],

[1002, 李四, 90, 88, 90, 268],

[1003, 王五, 92, 87, 91, 270]

];

$row = 2;

foreach ($data as $val) {

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(A . $row, $val[0]);

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(B . $row, $val[1]);

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(C . $row, $val[2]);

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(D . $row, $val[3]);

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(E . $row, $val[4]);

$objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue(F . $row, $val[5]);

$row++;

}

// 设置列宽

$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension(A)-&gt;setWidth(15);

$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension(B)-&gt;setWidth(15);

$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension(C)-&gt;setWidth(15);

$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension(D)-&gt;setWidth(15);

$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension(E)-&gt;setWidth(15);

$objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension(F)-&gt;setWidth(15);

// 导出Excel

header(Content-Type: application/vnd.ms-excel);

header(Content-Disposition: attachment;filename="学生成绩.xlsx");

header(Cache-Control: max-age=0);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, Excel2007);

$objWriter-&gt;save(php://output);

exit;

}

}

登录后复制
说明

上面的示例代码演示了如何使用PHPExcel库实现Excel导出。PHPExcel库是一个PHP读写Excel文件的开源库,功能强大,操作简单。

首先,我们创建了一个PHPExcel实例,然后设置当前活动sheet,并设置了标题和表头。之后,我们设置数据并对列宽进行了设置。最后,我们使用header函数设置了导出Excel的内容类型、文件名和缓存控制,然后使用PHPExcel_IOFactory类的createWriter方法创建一个Excel2007格式的写入器,并将数据流输出到浏览器。

三、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

<?php namespace appindexcontroller;

use PHPExcel;

use PHPExcel_IOFactory;

class ExcelImport

{

public function import()

{

if (empty($_FILES[file][tmp_name])) {

echo 请选择文件!;

exit;

}

$reader = PHPExcel_IOFactory::createReader(Excel2007);

$PHPExcel = $reader->load($_FILES[file][tmp_name]);

$sheet = $PHPExcel-&gt;getSheet(0); // 获得第1个工作表

$highestRow = $sheet-&gt;getHighestRow(); // 取得总行数

$highestColumn = $sheet-&gt;getHighestColumn(); // 取得总列数

$data = [];

for ($row = 2; $row getCell($col . $row)-&gt;getValue();

}

$data[] = $rowData;

}

var_dump($data);

}

}

登录后复制
说明

上面的示例代码演示了如何使用PHPExcel库实现Excel导入。首先,我们判断客户端是否上传了文件,并使用PHPExcel_IOFactory类的createReader方法创建一个Excel2007格式的读取器。然后,我们使用$reader的load方法将Excel文件读入内存,并获取其中的第一个工作表。接下来,我们通过最高行和最高列的索引值循环遍历Excel表格,将每行数据以关联数组的形式存储到$data变量中,并最终输出该变量。

四、总结

通过本文的介绍,我们了解了如何使用ThinkPHP6框架结合PHPExcel库实现Excel文件的导入导出功能,这为我们的Web应用程序开发提供了便利和支持。我们可以根据实际的需求,灵活运用PHPExcel库的各种方法和属性,来实现文件格式交换,并更好地服务于我们的应用程序。

以上就是ThinkPHP6中如何进行Excel导入和导出?的详细内容,更多请关注php中文网其它相关文章!

最新文章