1、安装

composer require phpoffice/phpspreadsheet

2、
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Font;
use PhpOffice\PhpSpreadsheet\Style\Color;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\IOFactory;
3、数据库导出到excel表中
//导出测试
public function daochu()
{$spreadsheet = new Spreadsheet();$worksheet = $spreadsheet->getActiveSheet();//设置工作表标题名称$worksheet->setTitle('车型品牌');//表头//设置单元格内容$worksheet->setCellValueByColumnAndRow(1, 1, '车型品牌表');$worksheet->setCellValueByColumnAndRow(1, 2, 'ID');$worksheet->setCellValueByColumnAndRow(2, 2, '品牌名');$worksheet->setCellValueByColumnAndRow(3, 2, '图片');$worksheet->setCellValueByColumnAndRow(4, 2, '状态');//合并单元格$worksheet->mergeCells('A1:D1');//字体设置$styleArray = ['font' => ['bold' => true,  //字体加粗'color' => [ 'rgb' => 'FF6A6A' ], //字体颜色'strikethrough' => true, //删除线'italic' => true, //倾斜'underline' => Font::UNDERLINE_DOUBLE,],'alignment' => ['horizontal' => Alignment::HORIZONTAL_CENTER,],];//设置单元格样式$worksheet->getStyle('A1')->applyFromArray($styleArray)->getFont()->setSize(28);$worksheet->getStyle('A2:D2')->applyFromArray($styleArray)->getFont()->setSize(14);//设置字体颜色//$worksheet->getStyle('B2')->getFont()->getColor()->applyFromArray(['rgb' => 'C0FF3E']);//背景色//$worksheet->getStyle('B2')->getFill()->applyFromArray( [ 'fillType' => Fill::FILL_GRADIENT_LINEAR, 'rotation' => 0, 'startColor' => [ 'rgb' => '000000' ], 'endColor' => [ 'argb' => 'FFFFFFFF' ] ] );//设置单元格 自动宽度显示$spreadsheet->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);$rows = Db::name('cartype_logo')->select();$len = Db::name('cartype_logo')->count();$j = 0;for ($i=0; $i < $len; $i++) {$j = $i + 3; //从表格第3行开始$worksheet->setCellValueByColumnAndRow(1, $j, $rows[$i]['logo_id']);$worksheet->setCellValueByColumnAndRow(2, $j, $rows[$i]['logo_name']);$worksheet->setCellValueByColumnAndRow(3, $j, $rows[$i]['logo_img']);$worksheet->setCellValueByColumnAndRow(4, $j, $rows[$i]['status']);}$styleArrayBody = ['borders' => ['allBorders' => ['borderStyle' => Border::BORDER_THIN,'color' => ['argb' => '666666'],],],'alignment' => ['horizontal' => Alignment::HORIZONTAL_CENTER,],];$total_rows = $len + 2;//添加所有边框/居中$worksheet->getStyle('A1:D'.$total_rows)->applyFromArray($styleArrayBody);$filename = '品牌表.xlsx';header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');header('Content-Disposition: attachment;filename="'.$filename.'"');header('Cache-Control: max-age=0');$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');$writer->save('php://output');
}
3、excel导入数据库表汇中
//导入测试
public function daoru()
{$reader = IOFactory::createReader('Xls');$reader->setReadDataOnly(TRUE);$spreadsheet = $reader->load('C:\Users\Administrator\Desktop\logo.xls'); //载入excel表格$worksheet = $spreadsheet->getActiveSheet();$highestRow = $worksheet->getHighestRow(); // 总行数$lines = $highestRow - 1;if ($lines <= 0) {exit('Excel表格中没有数据');}$new = [];for ($row = 2; $row <= $highestRow; ++$row) {$new_logos = $worksheet->getCellByColumnAndRow(1, $row)->getValue(); //品牌名$new_png = $worksheet->getCellByColumnAndRow(2, $row)->getValue(); //图片地址$new[] = ['logo_name'=> $new_logos,'logo_img'=>$new_png];}
$new = [];
for ($row = 2; $row <= $highestRow; ++$row) {$new_logos = $worksheet->getCellByColumnAndRow(1, $row)->getValue(); //品牌名$new_png = $worksheet->getCellByColumnAndRow(2, $row)->getValue(); //图片地址$new[] = ['logo_name'=> $new_logos,'logo_img'=>$new_png];}
foreach ($new as $k => $v) {$data['logo_name'] = $v[0];$data['logo_img'] = $v[1];//var_dump($data); die;Db::name('cartype_logo')->insert($data);}

echo 'ok';

}

PhpSpreadsheet 学习和使用相关推荐

  1. PHPSpreadsheet学习笔记——访问单元格

    文章目录 一.实例化对象 二.访问单元格 2.1获取单元格 2.2单元格赋值 2.3excel数据类型 2.3.1在单元格设置公式 2.3.2在单元格设置日期和时间值 2.3.3 设置带前导零的数字 ...

  2. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】

    类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...

  3. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  4. FastAI 2019课程学习笔记 lesson 2:自行获取数据并创建分类器

    文章目录 数据获取 google_images_download 的安装和使用 挂载google 个人硬盘到Google colab中 删除不能打开文件 创建ImageDataBunch 训练模型 解 ...

  5. FastAI 课程学习笔记 lesson 1:宠物图片分类

    文章目录 代码解析 神奇的"%" 导入fastAI 库 下载解压数据集 untar_data 获取帮助文档 help() ? ?? doc 设置路径 get_image_files ...

  6. 深度学习学习指南-工具篇

    colab Colab是由Google提供的云计算服务,通过它可以让开发者很方便的使用google的免费资源(CPU.GPU.TPU)来训练自己的模型. 学习经验总结 如何使用命令行? 通过!+cmd ...

  7. Redis学习之路(一)--下载安装redis

    redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...

  8. python内置库之学习configparser库(一)

    python内置库之学习configparser库(一) 1.引言 ini文件简介 [节] 键=值 注:节不能重复出现 2.自己封装了一个增删改查的类,可以参考一下 import configpars ...

  9. 前端Vue学习之路(二)-Vue-router路由

    Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...

最新文章

  1. 游戏脚本和MonoBehaviour生命周期
  2. Redis高可用基石--主从同步
  3. 共享一些变态的签名,希望不太OLD
  4. 10分钟教你用VS2017将代码上传到GitHub
  5. Message消息提示组件的原理
  6. SAS 9.4 的sid问题解决方案汇总(头疼...)
  7. hdu 2550 百步穿杨(大水题)
  8. 换IP的几种常见方法
  9. QT安装后编译错误怎么办?
  10. Ipmonitor9迁移安装后认证不可用的问题
  11. 软考计算机网络初级试题答案,2015年下半年中级软考《计算机网络—网络工程师》试题及答案...
  12. 人体姿态识别OpenPose
  13. 在Arcgis中更改图层的坐标系
  14. python VTK画3D方框
  15. 第三章 枚举(炸弹人、火柴棍等式、全排列)
  16. android网络编程案例,深入理解Android网络编程pdf 完整版
  17. 手机浏览器devtools_浏览器DevTools的秘诀:启动,网络和性能
  18. 导出pdf文件时加图片水印
  19. ODL MD-SAL Data Transactions
  20. scalac: Token not found...

热门文章

  1. 电子电路课程设计——8位数字抢答器设计论文
  2. 手写Spring-第六章-让我访问!实现前置后置处理扩展功能
  3. 基于stm32的FIR滤波
  4. mysql面试题115道
  5. Node.js_assert
  6. Web开发的未来HTML5 CSS JavaScript
  7. CSS中常用的文本样式
  8. ADB 自适应远光灯系统
  9. sql 查询 aeiou元素
  10. sim插拔识别时间_求助:如何实现不关机SIM卡插拔(不用PUSH式卡座)