thinkphp5中的excel表的导入导出

首先将PHPExcel文件放到vendor中

PHPExcel下载地址:https://pan.baidu.com/s/1GjbcSXxHwbLeBw8NzzIBYA

提取码:zbqq

数据导出到excel中

控制器中引入类文件

vendor ( ‘PHPExcel‘ );vendor ( ‘PHPExcel.PHPExcel_IOFactory‘ );vendor ( ‘PHPExcel.PHPExcel_Cell‘ );

控制器php代码
    public function index()//EXCL表格的导出    {        $data = Db::table(‘score‘)->select();        $name = ‘test‘;        $excel = new \PHPExcel(); //引用phpexcel        iconv(‘UTF-8‘, ‘gb2312‘, $name); //针对中文名转码        $header = [‘ID‘, ‘sid‘, ‘语文‘, ‘数学‘, ‘英语‘, ‘政治‘, ‘学期‘]; //表头,名称可自定义        $excel->setActiveSheetIndex(0);        $excel->getActiveSheet()->setTitle($name); //设置表名        $excel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(18);        $excel->getActiveSheet()->getColumnDimension(‘B‘)->setWidth(80);        $letter = [‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘, ‘G‘];//列坐标//生成表头        for ($i = 0; $i < count($header); $i++) {            //设置表头值            $excel->getActiveSheet()->setCellValue("$letter[$i]1", $header[$i]);            //设置表头字体样式            $excel->getActiveSheet()->getStyle("$letter[$i]1")->getFont()->setName(‘宋体‘);            //设置表头字体大小            $excel->getActiveSheet()->getStyle("$letter[$i]1")->getFont()->setSize(14);            //设置表头字体是否加粗            $excel->getActiveSheet()->getStyle("$letter[$i]1")->getFont()->setBold(true);            //设置表头文字水平居中            $excel->getActiveSheet()->getStyle("$letter[$i]1")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);            //设置文字上下居中            $excel->getActiveSheet()->getStyle($letter[$i])->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);            //设置单元格背景色            $excel->getActiveSheet()->getStyle("$letter[$i]1")->getFill()->getStartColor()->setARGB(‘FFFFFFFF‘);            $excel->getActiveSheet()->getStyle("$letter[$i]1")->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);            $excel->getActiveSheet()->getStyle("$letter[$i]1")->getFill()->getStartColor()->setARGB(‘FF6DBA43‘);            //设置字体颜色            $excel->getActiveSheet()->getStyle("$letter[$i]1")->getFont()->getColor()->setARGB(‘FFFFFFFF‘);        }

//写入数据        foreach ($data as $k => $v) {            //从第二行开始写入数据(第一行为表头)            $excel->getActiveSheet()->setCellValue(‘A‘ . ($k + 2), $v[‘id‘]);            $excel->getActiveSheet()->setCellValue(‘B‘ . ($k + 2), $v[‘sid‘]);            $excel->getActiveSheet()->setCellValue(‘C‘ . ($k + 2), $v[‘chinese‘]);            $excel->getActiveSheet()->setCellValue(‘D‘ . ($k + 2), $v[‘math‘]);            $excel->getActiveSheet()->setCellValue(‘E‘ . ($k + 2), $v[‘english‘]);            $excel->getActiveSheet()->setCellValue(‘F‘ . ($k + 2), $v[‘politics‘]);            $excel->getActiveSheet()->setCellValue(‘G‘ . ($k + 2), $v[‘xqid‘]);        }

//设置单元格边框        $excel->getActiveSheet()->getStyle("A1:E" . (count($data) + 1))->getBorders()->getAllBorders()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);

//清理缓冲区,避免中文乱码        ob_end_clean();        header(‘Content-Type: application/vnd.ms-excel‘);        header(‘Content-Disposition: attachment;filename="‘ . $name . ‘.xls"‘);        header(‘Cache-Control: max-age=0‘);

//导出数据        $res_excel = \PHPExcel_IOFactory::createWriter($excel, ‘Excel2007‘);        $res_excel->save(‘php://output‘);

}导出是调用index()就可以了

excel数据导入数据库引用类

vendor(‘PHPExcel.Writer.IWriter‘);vendor(‘PHPExcel.Writer.Abstract‘);vendor(‘PHPExcel.Writer.Excel5‘);vendor(‘PHPExcel.Writer.Excel2007‘);vendor(‘PHPExcel.IOFactory‘);

前端excel上传页面

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><form  enctype="multipart/form-data" method="post" action="index3">    <input type="file" name="excel" /> <br>    <input type="submit" value="上传" /></form></body></html>//请忽略前端页面的样式,重点是功能,嘻嘻^_^将文件上传到index3控制器中index3的php代码

public function index3(){    // 获取表单上传文件    $file = request()->file(‘excel‘);    // 移动到框架应用根目录/public/uploads/ 目录下    if ($file) {        $info = $file->move(ROOT_PATH . ‘public‘ . DS . ‘uploads‘);        if ($info) {            $path = ROOT_PATH . ‘public‘ . DS . ‘uploads‘ . DS;            $filename = $info->getSaveName();            $file_path = $path . $filename;            $objPHPExcel = \PHPExcel_IOFactory::load($file_path);//读取上传的文件            $arr = $objPHPExcel->getSheet(0)->toArray();//获取其中的数据            echo "<pre>";            print_r($arr);            die;//excel表中的数据,将数据插入数据库请自行书写^_^..        } else {            echo $file->getError();        }    }

}已经将excel表中数据提取出来,剩余的将数据插入数据库中,请自行书写^_^..

以上代码本人亲测,导入。导出可以顺利实现,没有遇到问题,如有遇到报错或者问题请联系本人。一起努力,共同进步。




原文地址:https://www.cnblogs.com/cds98/p/10113310.html

时间: 2024-12-10 08:18:09

thinkphp5中的excel表的导入导出的相关文章

laravel实现excel表的导入导出功能

这是个我去公司之后曾经折磨我很久很久的功能查阅了很多资料但是功夫不负有心人在本人的不懈努力下还是实现了这个功 namespace App\Http\Controllers; use App\Http\Controllers\Admin\ContentTypes\File; use App\Models\Win1; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facad

【最后的冲刺】android中excel表的导入和数据处理

[最后的冲刺]android中excel表的导入和数据处理 --学校课程的查询和修改 1.编写 The Class类把课程表courses.db当做一个实体类,hashcode和equals这两个类是为了判断输入的查询内容和Excel表中的内容是否一致. 并在java里面区别两个对象是否一致 1 public class TheClass { 2 private String classname; 3 private String type; 4 private String teacher;

Excel表数据导入Sql Server数据库中

Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型(注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel  5.0;DatabASE=[Excel表

Java版将EXCEL表数据导入到数据库中

1.采用第三方控件JXL实现 try { //实例化一个工作簿对象 Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls")); //获取该工作表中的第一个工作表 Sheet sheet=workBook.getSheet(0); //获取该工作表的行数,以供下面循环使用 int rowSize=sheet.getRows(); for(int i=0;i<rowSize;i++) { //编号 String

Excel表数据导入数据库表中

***Excel表数据导入到数据库表中 通过数据库表的模板做成‘Excel’表的数据导入到数据库相应的表中(注意:主表 和 从表的关系,要先导‘主表’在导入从表) 过程:通过数据库的导入工具—先导入为一张临时表,在插入到正式表中.语句如下: --YK_TYPK插入数据 insert into YK_TYPK --插入'YK_TYPK(通用品库)'数据 select * from Sheet1$_TYPK_caoyao ---------------------------------------

使用phpExcel实现Excel数据的导入导出(完全步骤)

使用phpExcel实现Excel数据的导入导出(完全步骤) 很多文章都有提到关于使用phpExcel实现Excel数据的导入导出,大部分文章都差不多,或者就是转载的,都会出现一些问题,下面是本人研究phpExcel的使用例程总结出来的使用方法,接下来直接进入正题. 首先先说一下,本人的这段例程是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错,如果有问题大家务必要对路劲是否引用

SSM excel文件的导入导出

对于excel文件的导入导出,后台接收读取和建表封存都是固定死的,所以对于excel导入时,excel文件内容必须匹配后台相关对象,不然报错. excel文件导出,用<a><a/>标签即可,通过后台去完成 ,不可用ajax去写导出,ajax请求只是个"字符型"的请求,即请求的内容是以文本类型存放的. 文件的下载是以二进制形式进行的,ajax没法解析后台返回的文件流,所以无法处理二进制流response输出来下载文件. 当获取前台导入这个命令后,会通过Mybati

在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题

原文:在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\KK.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 问题: 消息 15281,级别 16,状态 1,第 1 行 SQL Server 阻止了对组件 'Ad Hoc Di

java项目中Excel文件的导入导出

1 package poi.excel; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.OutputStream; 6 import java.lang.reflect.Field; 7 import java.lang.reflect.Method; 8 import java.util.ArrayList; 9 import java.util.List; 10 11 import