thinkphp5整合phpexcel 数据导入导出操作
首先需要去下载excel的文件包,下载下来后只需要classes里面的内容;
把Classes里的文件复制到thinkphp5的extend目录下的excel文件夹内(没有就手动创建);
以下是控制器代码
<?php namespace appwebcontroller; use thinkLoader; class Excel { public function excel_import(){ $file_name=$_SERVER["DOCUMENT_ROOT"]."/testexcel/Book1.xlsx"; return self::import($file_name); } public function excel_export(){ $data=db("excel")->select(); return self::export($data,"测试表格导出"); } //导入excel表, //$file_name excel文件所在的路径 private function Import($file_name){ Loader::import("excel.PHPExcel"); Loader::import("excel.PHPExcel.PHPExcel_IOFactory"); $phpexcel=new PHPExcel; $objReader =PHPExcel_IOFactory::createReader("Excel2007"); $obj_PHPExcel =$objReader->load($file_name, $encode = "utf-8");//加载文件内容,编码utf-8 echo "<pre>"; $excel_array=$obj_PHPExcel->getsheet(0)->toArray();//转换为数组格式 array_shift($excel_array);//删除第一个数组(标题); $city = []; foreach($excel_array as $k=>$v) { $city[$k]["name"] = $v[0]; $city[$k]["price"] = $v[1]; $city[$k]["style"] = $v[2]; $city[$k]["capacity"] = $v[3]; $city[$k]["type"] = $v[4]; } if(db("excel")->insertAll($city)){//批量插入数据 return "导入数据成功"; }else{ return "导入失败"; } } //导出excel表 //$data 二维数组 //$name 导出的表格命名 private function export($data,$name){ Loader::import("excel.PHPExcel");//引入PHPExcel.php $PHPExcel = new PHPExcel();//实例化 $PHPExcel->getActiveSheet()->setTitle("demo"); //给当前活动sheet设置名称 foreach($data as $k => $v){ $num=$k+1; //定义标题 /*$PHPExcel->setActiveSheetIndex(0) ->setCellValue("A1", "ID") ->setCellValue("B1", "名字") ->setCellValue("C1", "价格") ->setCellValue("D1", "款式") ->setCellValue("E1", "电池容量") ->setCellValue("F1", "电池类型");*/ $PHPExcel->setActiveSheetIndex(0) //Excel的第A列,id是你查出数组的键值,下面以此类推 ->setCellValue("A".$num, $v["id"]) ->setCellValue("B".$num, $v["name"]) ->setCellValue("C".$num, $v["price"]) ->setCellValue("D".$num, $v["style"]) ->setCellValue("E".$num, $v["capacity"]) ->setCellValue("F".$num, $v["type"]); } $PHPWriter = PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007");//创建生成的格式 header("Content-Disposition: attachment;filename=".$name.".xlsx");//下载下来的表格名 header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); $PHPWriter->save("php://output");//输出文件 exit; } }
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: php与java通用AES加密解密算法
- 下一篇:没有了