phpExcel早已停止維護,現在都用phpSpreadSheet。
網上那些phpSpreadSheet教程都啰里啰唆,叨叨這個那個,沒個能打的~
還得看我這個,代碼拷走,改改就能用,就是這麼粗魯!
安裝
composer require phpoffice/phpspreadsheet
代碼
<?php
declare (strict_types = 1);
namespace app\controller;
use think\Request;
use think\facade\View;
use think\facade\Db;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Csv;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class Xiangmu
{
public function exportExcel()
{
// 查詢要導出的數據
$data = Db::query(“select project,price from xiangmu”);
// 實例化
$spreadsheet = new Spreadsheet();
// 獲取活動單元格
$sheet = $spreadsheet->getActiveSheet();
// 獲取單元格
$cellA = $sheet->getCell(‘A1’);
// 設置單元格的值
$cellA->setValue(‘項目名稱’);
// 設置 A 列 列寬
$sheet->getColumnDimension(‘A’)->setWidth(100);
// 設置第一行 行高
$sheet->getRowDimension(1)->setRowHeight(20);
$cellB = $sheet->getCell(‘B1’);
$cellB->setValue(‘操作人’);
$sheet->getColumnDimension(‘B’)->setWidth(20);
$cellC = $sheet->getCell(‘C1’);
$cellC->setValue(‘檢測量’);
$sheet->getColumnDimension(‘C’)->setWidth(10);
// 設置樣式 標題
$styleArray = [
‘alignment’ => [
‘horizontal’ => ‘center’, //水平居中
‘vertical’ => ‘center’, //垂直居中
],
‘font’ => [
‘name’ => ‘黑體’,
‘bold’ => false,
‘size’ => 10
]
];
// 設置樣式 正文
$styleArrayBody = [
‘alignment’ => [
‘horizontal’ => ‘center’, //水平居中
‘vertical’ => ‘center’, //垂直居中
],
‘font’ => [
‘name’ => ‘宋體’,
‘bold’ => false,
‘size’ => 10
]
];
// 應用樣式
$sheet->getStyle(‘A1’)->applyFromArray($styleArray);
$sheet->getStyle(‘B1’)->applyFromArray($styleArray);
$sheet->getStyle(‘C1’)->applyFromArray($styleArray);
// 給sheet起個名字
$sheet->setTitle(‘項目’);
// 從 A2 開始填充數據
foreach ($data as $k => $v) {
$n = $k + 2;
// 獲取單元格
$cellA = $sheet->getCell(‘A’ . $n);
// 設置單元格的值
$cellA->setValue($v[‘project’]);
$cellB = $sheet->getCell(‘B’ . $n);
$cellB->setValue(‘民族復興不可阻擋’);
$cellC = $sheet->getCell(‘C’ . $n);
$cellC->setValue($v[‘price’]);
}
$file_name = ‘導出數據.xlsx’;
// 實例化導出類
header(‘Content-Type:application/vnd.ms-excel’);
header(‘Content-Disposition:attachment;filename=’ . $file_name);
header(‘Cache-Control:max-age=0’);
$writer = IOFactory::createWriter($spreadsheet, ‘Xlsx’);
$writer->save(‘php://output’);
}
}
上面代碼直接保存成一個.php文件,就能用。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/224261.html