PHPExcel写的导出文件(基础版本)

<?php
error_reporting(0);
require_once('excel/PHPExcel.php'); // 这个地方的引入看自己的路径引入
$head = ['姓名','身份证','性别','地址'];
$body = [
	['1','500242197605300015','男','成都市高新区'],
	['2','500242197605300014','女','成都市武侯区'],
];

excel_out($head,$body,'测试','test');

/**
 * 导出excel
 * @param $head array 表头数据
 * @param $body  array 主体数据
 * @param $name string 表格标签名
 * @param $filename string 导出的文件名
 * @param $widths array 每列的宽度(可省略)
 *
 * Demo:
 * 		$head = ['姓名','身份证','性别','地址'];
$body = [
['周杰伦','500242197605300015','男','四川省成都市双流县成都信息工程大学航空港校区'],
['蔡依林','500242197605300014','女','成都市武侯区成科西路3号'],
];
excel_out($head,$body,'测试','test');
 */
function excel_out($head,$body,$name,$filename,$widths=[],$superHead='') // 这段方法直接抄就可以了
{
    $objPHPExcel = new PHPExcel();
    $startRow = 1;  //从第一行开始
    //超级表头(合并单元格,显示一行字)
    if($superHead){
        $j = $i = 'A';
        $count = count($head)-1;
        for($index=0;$index<$count;$index++){
            $j++;
        }
        $objPHPExcel->setActiveSheetIndex(0)->mergeCells($i.$startRow.':'.$j.$startRow);   //合并
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue($i.$startRow, $superHead);
        $objPHPExcel->getActiveSheet()->getStyle($i.$startRow)->applyFromArray(
            array(
                'font' => array (
                    'bold' => true
                ),
                'alignment' => array(
                    'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER
                )
            )
        );
        $objPHPExcel->getActiveSheet()->getStyle($i.$startRow.':'.$j.$startRow)->getFont()->setSize(20);
        $startRow++;
    }

    //表头
    $i='A';
    foreach($head as $item){
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue($i.$startRow, $item);
        $i++;
    }
    $count = count($head);

    //主体数据
    foreach($body as $key=>$value){
        $startRow++;
        $index='A';
        for($i=0;$i<$count;$i++){
            $objPHPExcel->getActiveSheet()->getStyle($index.$startRow)->getNumberFormat()->setFormatCode("@"); //文本格式
            $objPHPExcel->setActiveSheetIndex(0)->setCellValue($index.$startRow, $value[$i]);
            $index++;
        }
    }

    //设置宽度
    if($widths){
        $index='A';
        for($i=0;$i<$count;$i++){
            $objPHPExcel->getActiveSheet()->getColumnDimension($index)->setWidth($widths[$i]);
            $index++;
        }
    }

    $objPHPExcel->getActiveSheet()->setTitle($name);
    $objPHPExcel->setActiveSheetIndex(0);
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
    header('Cache-Control: max-age=0');
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    ob_end_clean();
    $objWriter->save('php://output');exit;
}

基本操作就是这样 第二个方法exit是必须要的 如果不要exit为结束的话 打开excel时会出现文件损坏的问题 !切记。
百度云盘提取 ~ Execl链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值