PhpSpreadsheet 学习和使用
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 学习和使用相关推荐
- PHPSpreadsheet学习笔记——访问单元格
文章目录 一.实例化对象 二.访问单元格 2.1获取单元格 2.2单元格赋值 2.3excel数据类型 2.3.1在单元格设置公式 2.3.2在单元格设置日期和时间值 2.3.3 设置带前导零的数字 ...
- java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】
类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...
- Java EE学习心得
–Java EE学习心得 1. 称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...
- FastAI 2019课程学习笔记 lesson 2:自行获取数据并创建分类器
文章目录 数据获取 google_images_download 的安装和使用 挂载google 个人硬盘到Google colab中 删除不能打开文件 创建ImageDataBunch 训练模型 解 ...
- FastAI 课程学习笔记 lesson 1:宠物图片分类
文章目录 代码解析 神奇的"%" 导入fastAI 库 下载解压数据集 untar_data 获取帮助文档 help() ? ?? doc 设置路径 get_image_files ...
- 深度学习学习指南-工具篇
colab Colab是由Google提供的云计算服务,通过它可以让开发者很方便的使用google的免费资源(CPU.GPU.TPU)来训练自己的模型. 学习经验总结 如何使用命令行? 通过!+cmd ...
- Redis学习之路(一)--下载安装redis
redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...
- python内置库之学习configparser库(一)
python内置库之学习configparser库(一) 1.引言 ini文件简介 [节] 键=值 注:节不能重复出现 2.自己封装了一个增删改查的类,可以参考一下 import configpars ...
- 前端Vue学习之路(二)-Vue-router路由
Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...
最新文章
- 游戏脚本和MonoBehaviour生命周期
- Redis高可用基石--主从同步
- 共享一些变态的签名,希望不太OLD
- 10分钟教你用VS2017将代码上传到GitHub
- Message消息提示组件的原理
- SAS 9.4 的sid问题解决方案汇总(头疼...)
- hdu 2550 百步穿杨(大水题)
- 换IP的几种常见方法
- QT安装后编译错误怎么办?
- Ipmonitor9迁移安装后认证不可用的问题
- 软考计算机网络初级试题答案,2015年下半年中级软考《计算机网络—网络工程师》试题及答案...
- 人体姿态识别OpenPose
- 在Arcgis中更改图层的坐标系
- python VTK画3D方框
- 第三章 枚举(炸弹人、火柴棍等式、全排列)
- android网络编程案例,深入理解Android网络编程pdf 完整版
- 手机浏览器devtools_浏览器DevTools的秘诀:启动,网络和性能
- 导出pdf文件时加图片水印
- ODL MD-SAL Data Transactions
- scalac: Token not found...