PHP使用PhpSpreadsheet 导出excel文件

        PhpSpreadsheet 是使用PHP语言编写的用户操作excel的类库,提供了一系列丰富的接口,可很方便的对文档属性、单元格进行操作,包括设置样式、图片、日期、函数等等。

PhpSpreadsheet用方法也很简单,示例如下:

一、使用PhpSpreadsheet进行excel操作,首先需要安装

composer require phpoffice/phpspreadsheet

二、引入PhpSpreadsheet类

use \PhpOffice\PhpSpreadsheet\Spreadsheet;
use \PhpOffice\PhpSpreadsheet\IOFactory;
use \PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Alignment;

三、实例化PhpSpreadsheet

//实例化一个新的excel文档
$newExcel = new Spreadsheet();
//获取当前操作sheet的对象
$objSheet = $newExcel->getActiveSheet();
$date = date('Ymd',time());
$name = '订单信息表';
$objSheet->setTitle($name);//设置当前sheet的标题
//设置表头
$objSheet->setCellValue('A1', '单号')
         ->setCellValue('B1', '时间')
         ->setCellValue('C1', '联系人')
         ->setCellValue('D1', '手机号')
         ->setCellValue('E1', '支付金额');
//设置表头样式
$font = [
    'font' => [
        'bold' => true,
        'size' => 13,
     ],
];
$objSheet->getStyle('A1:E1')->applyFromArray($font);

四、设置表格数据

$info = [数据数组];
$dataCount = count($info);
$k = 1;
if($dataCount == 0){
    exit;
}else{
    for ($i=0;$i<$dataCount;$i++){
        $k = $k + 1;
        $objSheet->setCellValue('A' . $k, $info[$i]['order_type'])
            ->setCellValue('B' . $k, $info[$i]['addtime'])
            ->setCellValue('C' . $k, $info[$i]['name'])
            ->setCellValue('D' . $k, $info[$i]['faren'])
            ->setCellValue('E' . $k, " ".$info[$i]['shenfenzheng'])
        ;
        $objSheet->getStyle('A'.$k)->applyFromArray($styleArray);
    }
    $k = $k + 1; 
    $extends = $lists['extend'];
    $objSheet->setCellValue('A' . $k, "这里是个合并单元格的示例");
    //合并单元格
    $objSheet->mergeCells('A' . $k.':E'.$k); 
    //最后一行样式
    $objSheet->getStyle('A'.$k.':'.'A'.$k)->applyFromArray([
        'font' => [
            'bold' => true,
            'size' => 13,
            'color'=>['argb' => '000000']
        ],
    ]);
}

五、设置表格样式

//默认行高
$objSheet->getDefaultRowDimension()->setRowHeight(22);
//设置宽度
$objSheet->getColumnDimension('A')->setWidth(15); 
$objSheet->getColumnDimension('B')->setWidth(20); 
$objSheet->getColumnDimension('C')->setWidth(40); 
$objSheet->getColumnDimension('D')->setWidth(15); 
$objSheet->getColumnDimension('E')->setWidth(25);

六、执行保存或下载

ob_end_clean();
ob_start();
//设置文件扩展名, $format只能为 Xlsx 或 Xls
$format='Xlsx';
if ($format == 'Xlsx') {
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
} elseif ($format == 'Xls') {
    header('Content-Type: application/vnd.ms-excel');
}
    
header("Content-Disposition: attachment;filename="  . $name . '.' . strtolower($format));
header('Cache-Control: max-age=0');
$objWriter = IOFactory::createWriter($newExcel, $format);
$objWriter->save('php://output');

//通过php保存在服务器的时候需要用到
//$objWriter->save($dir.'/demo.xlsx');

exit;

以上就是Thinkphp6使用PhpSpreadsheet保存为Excel文件的使用方法 。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花生²

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值