php导入excel文件(php实现excel表共享)

phpExcel早已停止维护,现在都用phpSpreadSheet。

网上那些phpSpreadSheet教程都啰里啰唆,叨叨这个那个,没个能打的~

还得看我这个,代码拷走,改改就能用,就是这么粗鲁!

安装

composer require phpoffice/phpspreadsheet

代码

declare (strict_types = 1);

namespace appcontroller;

use thinkRequest;

use thinkfacadeView;

use thinkfacadeDb;

use PhpOfficePhpSpreadsheetCellCoordinate;

use PhpOfficePhpSpreadsheetIOFactory;

use PhpOfficePhpSpreadsheetSpreadsheet;

use PhpOfficePhpSpreadsheetWriterCsv;

use PhpOfficePhpSpreadsheetWriterXlsx;

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文件,就能用。