ThinkPHP 6.0 phpspreadsheet操作Excel表格实例
生活随笔
收集整理的這篇文章主要介紹了
ThinkPHP 6.0 phpspreadsheet操作Excel表格实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在 ThinkPHP?6.0 中實現 excel 導出功能,需要使用第三方擴展phpspreadsheet。
安裝和導入導出就不再講解了,可以看這兩篇:
《ThinkPHP6 excel 導入功能完整實現》
《ThinkPHP6 excel 導出功能完整實現》
本文主要講解如何操作Excel文件表格。
1.PhpSpreadsheet 官網
Welcome to PhpSpreadsheet's documentation - PhpSpreadsheet Documentation
?
2.加載依賴
use PhpOffice\PhpSpreadsheet\Spreadsheet;3.實例化
$spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet();4.獲取工作薄
$spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle('Sheet1');5.獲取、設置單元格
// 獲取單元格 $cell = $sheet->getCell('A1'); // 設置值 $cell->setValue('張三');// 獲取單元格 $cell = $sheet->getCellByColumnAndRow(1,2); // 設置值 $cell->setValue('李四');// 設置單元格值(位置,值) $sheet->setCellValue('A1','ID'); $sheet->setCellValue('B1','姓名');// 設置單元格值(列,行,值) $sheet->setCellValueByColumnAndRow(1, 2, 1); $sheet->setCellValueByColumnAndRow(2, 3, '張三');6.設置文字樣式
// 宋體 加粗 24號 $sheet->getStyle('A1')->getFont()->setName('宋體')->setBold(true)->setSize(24);7.文字顏色
$sheet->setCellValue('A1', '張三'); $sheet->setCellValue('A2', '張三'); $sheet->setCellValue('B1', '李四'); $sheet->setCellValue('B2', '李四');// RGB顏色獲取和設置 $sheet->getStyle('A1')->getFont()->getColor()->setRGB('red'); $sheet->getStyle('A2')->getFont()->getColor()->setRGB('AEEEEE');// AGRB顏色獲取和設置 $sheet->getStyle('B1')->getFont()->getColor()->setARGB('72ece9'); $sheet->getStyle('B2')->getFont()->getColor()->setARGB('blue');8.單元格格式
$sheet->setCellValue('A1','2023-2-21 10:10:10');$sheet->setCellValue('A2','199.98');$sheet->getStyle('A1')->getNumberFormat() ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2);$sheet->getStyle('A2')->getNumberFormat() ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);9.設置超鏈接
$sheet->setCellValue('A1','CSDN'); $sheet->getCell('A1')->getHyperlink()->setUrl('https://blog.csdn.net/json_ligege');10.使用公式
$sheet->setCellValue('A1','名單'); $sheet->setCellValue('B1','分數');$sheet->setCellValueByColumnAndRow(1, 2, '張三'); $sheet->setCellValueByColumnAndRow(2, 2, '80');$sheet->setCellValueByColumnAndRow(1, 3, '李四'); $sheet->setCellValueByColumnAndRow(2, 3, '79');$sheet->setCellValueByColumnAndRow(1, 4, '王五'); $sheet->setCellValueByColumnAndRow(2, 4, '93');$sheet->setCellValueByColumnAndRow(1, 5, '趙六'); $sheet->setCellValueByColumnAndRow(2, 5, '68');$sheet->setCellValueByColumnAndRow(1, 6, '孫琦'); $sheet->setCellValueByColumnAndRow(2, 6, '89');$sheet->setCellValueByColumnAndRow(1, 7, '何八'); $sheet->setCellValueByColumnAndRow(2, 7, '90');$sheet->setCellValue('A8', '總數:'); $sheet->setCellValue('B8', '=SUM(B2:B7)'); $sheet->setCellValue('A9', '平均數:'); $sheet->setCellValue('B9', '=AVERAGE(B2:B7)'); $sheet->setCellValue('A10', '最小數:'); $sheet->setCellValue('B10', '=MIN(B2:B7)'); $sheet->setCellValue('A11', '最大數:'); $sheet->setCellValue('B11', '=MAX(B2:B7)');11.批量賦值
$sheet->setCellValue('A1', 'ID'); $sheet->setCellValue('B1', '姓名'); $sheet->setCellValue('C1', '性別'); $sheet->setCellValue('D1', '職業');// 參數(單元格數據,表示空白單元格的值,單元格開始位置) $sheet->fromArray([[1, '李云龍', '男', '軍人'],[2, '蘇乞兒', '男', '乞丐'],[3, '周星馳', '男', '導演'],[4, '林允兒', '女', '演員'],],6,'A2' );12.合并、拆分單元格
// 合并單元格 $sheet->mergeCells('A1:F1'); $sheet->setCellValue('A1','標題');// 拆分單元格 $sheet->mergeCells('A2:F2'); $sheet->unmergeCells('A2:F2');13.行操作
// 設置行高度 $sheet->getRowDimension(1)->setRowHeight(30); // 設置默認行高 $sheet->getDefaultRowDimension()->setRowHeight(20); // 獲取行高度 echo $sheet->getRowDimension(1)->getRowHeight(); // 獲取總行數 echo $sheet->getHighestRow();die;14.列操作
// 設置列寬度 $sheet->getColumnDimension('A')->setWidth(50); // 設置列自動寬度 $sheet->getColumnDimension('B')->setAutoSize(true); // 設置列默認寬度 $sheet->getDefaultColumnDimension()->setWidth(20); // 獲取列寬度 echo $sheet->getColumnDimension('A')->getWidth(); // 獲取總列數 echo $sheet->getHighestColumn();die;15.單元格樣式
$sheet->setCellValue('A1', 'ID'); $sheet->setCellValue('B1', '姓名'); $sheet->setCellValue('C1', '性別'); $sheet->setCellValue('D1', '職業');$sheet->fromArray([[1, '李云龍', '男', '軍人'],[2, '蘇乞兒', '男', '乞丐'],[3, '周星馳', '男', '導演'],[4, '林允兒', '女', '演員'],],6,'A2' );$styleArray = ['alignment' => ['horizontal' => 'center', // 水平居中'vertical' => 'center', // 垂直居中],'font' => ['name' => '宋體','bold' => true,'size' => 22] ];$sheet->getStyle(1)->applyFromArray($styleArray);總結:
ThinkPHP 6.0 phpspreadsheet操作Excel表格實例到此為止,目前總結了這些常用的操作,更多需要可以查看官網文檔;本來是想做一個通過模板導出Excel文件的功能,但是沒找到怎么做,不過目前也可以達到我想要的效果了;先這樣吧,如果后面實現了,就再寫一篇。
借鑒文章:
PHP使用PhpSpreadsheet操作Excel實例詳解 - 騰訊云開發者社區-騰訊云
總結
以上是生活随笔為你收集整理的ThinkPHP 6.0 phpspreadsheet操作Excel表格实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于CCNA的培训课程(1)-- 网络基
- 下一篇: 验证码识别的作用 优优云验证码识别软件