tp6使用phpexcel导出和保存到服务器

安装

composer require phpoffice/phpexcel

使用导出

<?php
declare (strict_types = 1);

namespace app\admin\controller;

use think\Request;
use PHPExcel_IOFactory;

/**
 * 报表
 * */
class ReportFormExcel
{
    /**
     *订单
     * */
    public function orderExcel(){
        $objPHPExcel = new \PHPExcel();
        $objPHPExcel->getProperties()->setCreator("ctos")
            ->setLastModifiedBy("ctos")
            ->setTitle("Office 2007 XLSX Test Document")
            ->setSubject("Office 2007 XLSX Test Document")
            ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
            ->setKeywords("office 2007 openxml php")
            ->setCategory("Test result file");
        //设置各列宽度
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25);
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(16);
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(19);
        $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(18);
        $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(55);
        $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(43);
        //设置列名
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', '订单编号')
            ->setCellValue('B1', '收件人')
            ->setCellValue('C1', '时间')
            ->setCellValue('D1', '手机')
            ->setCellValue('E1', '地址')
            ->setCellValue('F1', '发货信息');
        //给数据
        for ($i=0;$i<30;$i++){
            $num = $i + 2;
            $objPHPExcel->setActiveSheetIndex(0)//Excel的第A列,uid是你查出数组的键值,下面以此类推
            ->setCellValue('A'.$num, "5468565549844565454\t")//数据太长\t不乱码
            ->setCellValue('B'.$num, 2)
            ->setCellValue('C'.$num, "2021-10-12")
            ->setCellValue('D'.$num, 3)
            ->setCellValue('E'.$num, 5)
            ->setCellValue('F'.$num, 6);
        }
        //导出文件名
        $filename = date('Y-m-d',time()).'报表.xlsx';
        ob_end_clean();
        header('Content-Type: applicationnd.ms-excel');
        header('Content-Disposition: attachment;filename='.$filename);
        header('Cache-Control: max-age=0');
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  //excel5为xls格式,excel2007为xlsx格式
        $objWriter->save('php://output');
    }

}

保存到服务器,把导出最后一点改为下面就可以

//导出文件名
$filename = date('Y-m-d',time()).'房产车位储藏室商铺.xlsx';
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  //excel5为xls格式,excel2007为xlsx格式
//获得tp6路径
$Absolute_Path=$_SERVER['SCRIPT_FILENAME'];
$user_path = substr($Absolute_Path,0,-9).'/storage/xsc/';//保存路径
$urls = $objWriter->save($user_path.$filename);//保存excle文件
return json([$user_path,$urls]);
//获得tp6路径
        $date = date("Ymd");
        $Absolute_Path=$_SERVER['SCRIPT_FILENAME'];
        $user_path = substr($Absolute_Path,0,-9)."/storage/xsc/{$date}/";//保存路径
        $user_paths = substr($Absolute_Path,0,-9)."/storage/xsc/{$date}";
        if(!is_dir($user_paths)){
            mkdir($user_paths,0777,true);
        }
        $urls = $objWriter->save($user_path.$filename);//保存excle文件

 

居中

//所有单元格居中
$objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);

//单个单元格居中
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

设置表格行高

//设置行高
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20);

设置背景颜色

//设置填充的样式和背景色
$objPHPExcel->getActiveSheet()->getStyle('A1:I1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FF999999');

合并单元格

//合并单元格
$objPHPExcel->getActiveSheet()->mergeCells('A1:E1');

固定表头

//固定表头
 $objPHPExcel->getActiveSheet()->freezePane('A2');

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用PHPExcel导出MySQL数据到Excel,首先需要安装并引入PHPExcel库。 步骤如下: 1. 创建一个新的PHP文件,并包含PHPExcel库的文件: ```php require_once 'PHPExcel/PHPExcel.php'; ``` 2. 连接到MySQL数据库: ```php $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } ``` 3. 执行查询语句获取数据: ```php $sql = "SELECT * FROM tablename"; $result = $conn->query($sql); ``` 4. 新建一个PHPExcel对象并设置一些属性: ```php $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties() ->setCreator("Your Name") ->setLastModifiedBy("Your Name") ->setTitle("MySQL导出Excel") ->setSubject("MySQL导出Excel") ->setDescription("MySQL数据导出到Excel"); ``` 5. 将数据填充到Excel中: ```php $row = 1; while($row_data = $result->fetch_assoc()) { $col = 0; foreach($row_data as $value) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value); $col++; } $row++; } ``` 6. 设置Excel的输出: ```php $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="mysql_export.xls"'); header('Cache-Control: max-age=0'); $objWriter->save('php://output'); ``` 7. 关闭数据库连接: ```php $conn->close(); ``` 以上就是用PHPExcel导出MySQL数据到Excel的简单步骤。根据需要,您可以添加更多的样式和设置来自定义导出的Excel文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大得369

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

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

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

打赏作者

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

抵扣说明:

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

余额充值