安装

composer require phpoffice/phpspreadsheet

1、简单使用导出到服务器

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Border;/*** 导出欠费明细表* */public function index(){$name  = date("YmdHis", time());$head = ['日期', '付款人数', '付款订单数', '付款金额', '付款件数'];// 表头信息$keys = ['time', 'order_num', 'did', 'total_price', 'good_num'];$count = count($head);  //计算表头数量$spreadsheet = new Spreadsheet();$sheet = $spreadsheet->getActiveSheet();for ($i = 65; $i < $count + 65; $i++) {     //数字转字母从65开始,循环设置表头:$sheet->setCellValue(strtoupper(chr($i)) . '1', $head[$i - 65]);}for($s=1;$s<=1000000;$s++){$spreadsheet->getActiveSheet()->setCellValue('A' . $s, $s);}header('Content-Type: application/vnd.ms-excel');header('Content-Disposition: attachment;filename=/www/wwwroot/swoole/erp-test-zhoao2/excel/666.xlsx"');header('Cache-Control: max-age=0');$writer = new Xlsx($spreadsheet);$writer->save('/www/wwwroot/swoole/erp-test-zhoao2/excel/666.xlsx');//删除清空:$spreadsheet->disconnectWorksheets();unset($spreadsheet);return 666;}

2、样式

1、字体
$sheet->getStyle('B1')->getFont()->setBold(true);//将B1单元格设置为粗体字
$sheet->getStyle('A7:B7')->getFont()->setBold(true)->setName('Arial')->setSize(10);//将A7至B7两单元格设置为粗体字,Arial字体,10号字2、改变字体颜色
$sheet->getStyle('A1')->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED);//将A1单元格文字颜色设为红色3、设置列宽
$sheet->getColumnDimension('A')->setWidth(20);//将A列的宽度设为20(字符)
$sheet->getColumnDimension('B')->setAutoSize(true);//将B列的宽度设为自动宽度
$sheet->getDefaultColumnDimension()->setWidth(12);//设置默认列宽为124:设置行高(两个不能同时使用)
$sheet->getRowDimension('10')->setRowHeight(100);//将第十行的高度设为100pt
$sheet->getDefaultRowDimension()->setRowHeight(50);//设置默认行高为205:对齐
$sheet->getStyle('A:D')->getAlignment()
->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER) //设置垂直居中
->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER) //设置水平居中
->setWrapText(true); //设置自动换行
居中
$sheet->getStyle('A:N')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER) //设置水平居中->setWrapText(true); //设置自动换行
左对齐$sheet->getStyle('A3:A4')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT) //设置左对齐->setWrapText(true); //设置自动换行6、合并单元格
$sheet->mergeCells('A1:D2');//A1到D2合并为一个单元格
1、将合并后的单元格拆分
$sheet->unmergeCells('A1:D2');//将合并后的单元格拆分。2、使用applyFromArray实现单元格样式设置
//样式变量
$style = [
//设置字体样式
'font' => ['name' => 'Arial','bold' => true,'italic' => false,'underline' => Font::UNDERLINE_DOUBLE,'strikethrough' => false,'color' => ['rgb' => '808080']],
//设置边框线样式
'borders' => [//allBorders所有的边框线样式//左边框线'bottom' => ['borderStyle' => Border::BORDER_DASHDOT,'color' => ['rgb' => '808080']],//上边框线'top' => ['borderStyle' => Border::BORDER_DASHDOT,'color' => ['rgb' => '808080']]
],
//对齐样式
'alignment' => ['horizontal' => Alignment::HORIZONTAL_CENTER,'vertical' => Alignment::VERTICAL_CENTER,'wrapText' => true,
],
//是否使用前缀
'quotePrefix'    => true
];
$sheet->getStyle('A1:D1')->applyFromArray($style);

黑边框

$styleArray = ['borders' => ['allBorders' => ['borderStyle' => Border::BORDER_THIN //黑边框]]
];
$sheet->getStyle('A1:N1')->applyFromArray($styleArray);

设置边框为白色

$styleArray = ['borders' => ['allBorders' => ['borderStyle' => Border::BORDER_THIN, //黑边框'color' => array ('argb' => 'FFFFFFFF')]]
];$sheet->getStyle('A1:N1')->applyFromArray($styleArray);

背景颜色

$sheet->getStyle("C1:N1")->getFill()->setFillType(Fill::FILL_SOLID)
->getStartColor()->setARGB("FFf1e4b5");

设置工作表标题,工作簿操作

//创建工作表
$spreadsheet->createSheet();
//切换工作表$key是数字,切换到那个工作簿
$spreadsheet->setActiveSheetIndex($key);
$sheet = $spreadsheet->getActiveSheet($key);$sheet->setTitle('Hello');//设置当前工作表标题。

设置单元格的格式

$sheet->getStyle('D2')->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT);//将D2单元格的格式设为文本格式
$sheet->getStyle('A1:D2')->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT);//将A1到D2的单元格设置为文本格式

换行

$sheet->getCell('A4')->setValue("hello\nworld");//将A4单元格的hello和world换行

超链接

//将A2单元格内容设置blog并点击跳转https://www.wj0511.com
$sheet->setCellValue('A2', 'blog');
$sheet->getCell('A2')->getHyperlink()->setUrl('https://www.wj0511.com');

边框

$styleArray = ['borders' => ['allBorders' => ['borderStyle' => Border::BORDER_THIN //细边框]]
];$worksheet->getStyle('A1:N1')->applyFromArray($styleArray);

phpspreadsheet使用导出excel相关推荐

  1. PhpSpreadsheet数据导出Excel 设置单元格格式为文本

    PhpOffice\PhpSpreadsheet数据导出Excel 的时候,设置单元格格式为文本,用NumberFormat::FORMAT_TEXT这个方法不起作用,长数字还是不显示,于是找了很久的 ...

  2. php使用phpspreadsheet批量导出excel数据

    由于PHPExcel早就停止更新维护,建议使用phpspreadsheet,本文就教你如何用PhpSpreadsheet导出excel 这里我用的thinkadmin框架举例,其他也是大同小异 注:原 ...

  3. thinkphp thinkadmin使用phpspreadsheet批量导出excel数据

    由于PHPExcel早就停止更新维护,建议使用phpspreadsheet,本文就教你如何用PhpSpreadsheet导出excel 注:原生导出excel可以看我另一篇文章https://blog ...

  4. php excel 导入2ge,风之涯技术博客 - 使用PhpSpreadsheet导入导出Excel简单描述

    最近做项目,遇到一个需要excel.word导出的功能案例,所以找到了PhpSpreadsheet进行导出,不要问我为什么不用PHPExcel,因为PHPExcel已经不更新了,对后面的扩展不太好.今 ...

  5. php导出excel数据代码,phpspreadsheet导出数据到Excel的方法介绍(代码示例)

    本篇文章给大家带来的内容是关于phpspreadsheet导出数据到Excel的方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 之前我们使用PHP导出Excel数 ...

  6. php导出excel列数太多,PhpSpreadsheet导出Excel超过26列解决办法

    使用PhpSpreadsheet导出excel文件的时候,发现报了一个错误,后来查询问题才发现是列数超过26列的问题. excel行列表示方式 xexcel的列的表示规则从A,B,C一直到Z,当超过2 ...

  7. PHP phpoffice/phpspreadsheet导出excel

    PHP phpoffice/phpspreadsheet导出excel 由于PHPExcel已经被废弃在PHP7.2中已经无法获取更新,官方重新开了一个新包phpspreadsheet 注意:这里使用 ...

  8. php Spreadsheet 导出,使用PhpSpreadsheet导出Excel文件

    namespace frontendcontrollers; use Yii; use yiiwebController; use PhpOfficePhpSpreadsheetSpreadsheet ...

  9. PHP7.2环境中PHPExcel无法导出Excel

    问题 这几天接到一个bug,说的是有某一个后台的列表页有一个excel导出功能,最近不能使用了,我立即登陆系统发现确实如此,但是这个上线项目已经运行长达2年,中间并没有出现问题,于是我拉出源码进行分析 ...

最新文章

  1. windows7/8 安装mysql5.7
  2. leetcode--删除链表的倒数第N个节点--python
  3. P2197 【模板】nim游戏
  4. 技术规划应该写成什么样?
  5. ngrok工具的介绍与使用,以及使用此工具时注意的事项
  6. 【论文写作】JSP在线考试系统如何写功能描述
  7. 【原创】C#实现视频远程监控(下载)
  8. 以固定速率发包工具linux,linux发包软件-指定卡合同如何在linux下封闭包
  9. ERP学习 之 财务管理
  10. 详谈软件工程之系统设计模式
  11. 分享一个小软件fences(桌面管理软件)
  12. winpe下安装linux工具箱,(U盘中安装WinPE、Ubuntu、BT3、CDLinux系统和DOS工具箱等工具的方法.doc...
  13. CodeSmith 简单使用和常用模板
  14. windows下vue-cli及webpack 构建网站(四) 路由vue-router的使用
  15. 理解 PHP 8 的 JIT
  16. android 微信朋友圈 全功能,Android仿微信朋友圈文字展开全文功能 Android自定义TextView仿微信朋友圈文字展开全文功能...
  17. 进程调度 优先级c语言,按优先级调度算法实现进程调度的程序
  18. 【python学习】-字典学习(访问字典所有键与值、修改与更新字典、删除字典)
  19. K.田园的饭可好吃了
  20. 案例分析-金融业网络安全攻防

热门文章

  1. 新版标准日本语初级_第四十二课
  2. win7系统如何添加摄像头--win10专业版
  3. windows 10 defender 577的错误处理方法
  4. python笔记11面向对象
  5. vue3 element plus el-input 无法输入问题
  6. 5. 第五阶段 测试开发技术 - JAVA
  7. SAP TRM 中的詹森阿尔法指数(Jensen's alpha)计算
  8. Vscode markdown 添加、粘贴、导入图片
  9. precision、recall、f1score的计算
  10. 前端动态生成横向树形表格