PhpSpreadsheet导出和读取Excel的简单使用

下载或安装
① github下载:https://github.com/PHPOffice/PhpSpreadsheet
② composer安装:

composer require phpoffice/phpspreadsheet

composer安装时注意php版本,php要开启fileinfo扩展。

一、Excel导出
这里使用的thinkphp5.1做个示范

<?php

use think\Controller;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;

class Test extends Controller
{
	public function saveExcel()
	{
		$title = ['第一行','第二行','第三行','第四行','第五行'];
		$data = [
	        ['row1' => '1','row2' => '2','row3' => '3','row4' => '4','row5' => '5'],
	        ['row1' => '1','row2' => '2','row3' => '3','row4' => '4','row5' => '5'],
	        ['row1' => '1','row2' => '2','row3' => '3','row4' => '4','row5' => '5'],
	        ['row1' => '1','row2' => '2','row3' => '3','row4' => '4','row5' => '5'],
	        ['row1' => '1','row2' => '2','row3' => '3','row4' => '4','row5' => '5']
	    ];
    	
		$spreadsheet = new Spreadsheet();
		$sheet = $spreadsheet->getActiveSheet();

	    //设置单元格内容
	    $titCol = 'A';
	    foreach ($title as $key => $value) {
	    	 //单元格内容写入
	        $sheet->setCellValue($titCol . '1', $value);
	        $titCol++;
	    }
	    $row = 2; 
	    foreach ($data as $item) {
	        $dataCol = 'A';
	        foreach ($item as $value) {
	            //单元格内容写入
	            $sheet->setCellValue($dataCol . $row, $value);
	            $dataCol++;
	        }
	        $row++;
	    }
	    //保存
	    $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
	    $fileName = 'demo.xlsx';
	    //输出到浏览器
	    header('Content-type: text/html; charset=utf-8');
    	header('Content-Type: application/vnd.ms-excel');
    	header('Content-Disposition: attachment;filename=' . $fileName);
    	header('Cache-Control: max-age=0');
	    $writer->save('php://output');
	}
}

效果:
在这里插入图片描述

二、Excel读取

public function readExcel()
{
	if (!isset($_FILES['file'])) {
		return false;
	}
	$inputFileName = $_FILES['file']['tmp_name'];
    $spreadsheet = IOFactory::load($inputFileName);
    $sheetList = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
    $list = [];
	foreach ($sheetList as $key => $value) {
		$list[] = array_values($value);
	}
	$titles = [];
	$indexArr = [];
	foreach ($list as $key => $value) {
		if ($key != 0) {
			$indexArr[] = $value;
		} else {
			$titles = $value;
		}
	}
	$relList = [];
	foreach ($indexArr as $key => $value) {
		$relList[] = array_combine($titles,$value);
	}
    var_dump($relList);
}

结果:
在这里插入图片描述


PhpSpreadsheet类库使用的功能非常广,这里只是一个简单的使用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值