phpexcel的使用,tp3.2

来源:互联网 发布:爱淘宝每日抽红包链接 编辑:程序博客网 时间:2024/05/16 18:15

其实phpexcel这种使用广泛的类库的引用都是比较简单的,使用起来就是下载类库-》引用类-》和普通类一样实例化使用,但是属性和方法的说明还是要查资料的。所以就在这里写下了,慢慢补充。

1,下载类库

https://github.com/PHPOffice/PHPExcel

东西很多,核心是

,一般都是这样,文件夹中是一堆文件,外面一个文件算是入口文件,就引用并实例化外面这个类文件就好了

2,引用,原生自然是include,required或namaspace,

我用的是tp3的框架,把文件放到library->Vendor下,使用时只要vendor('PHPExcel.PHPExcel');就可以引用了

实例化$phpexcel = new \PHPExcel();

3,使用

 //设置excel属性
        $phpexcel->getProperties()
        ->setCreator("Maarten Balliauw")
        ->setLastModifiedBy("Maarten Balliauw")
        ->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");
        //设置sheet表名
        $phpexcel->getActiveSheet()->setTitle('订单导出表');
       //设置表数据
        //批量直接导出
        //$phpexcel->getActiveSheet()->fromArray($data);
       //设置第一行的标题
        $phpexcel->setActiveSheetIndex(0)->setCellValue('A1', '订单编号')->setCellValue('B1', '订单名称')
        ->setCellValue('C1', '订单价格')->setCellValue('D1', '联系人')->setCellValue('E1', '联系号码')
        ->setCellValue('F1', '下单时间')->setCellValue('G1', '下单ip')->setCellValue('H1', '订单状态')
        ->setCellValue('I1', '用户备注')->setCellValue('J1', '管理员备注');
        //循环设置单元格的数据
        foreach ($data as $k=>$v){
            $num=$k+2;
            $time=date('Y-m-d H:i',$v['create_time']);
         
            //设置文本格式
            $str=\PHPExcel_Cell_DataType::TYPE_STRING;
            $phpexcel->setActiveSheetIndex(0)
            ->setCellValueExplicit('A'.$num, $v['oid'],$str)
            ->setCellValue('B'.$num, $v['name'])
            ->setCellValueExplicit('C'.$num, $v['tprice'],$str)
            ->setCellValue('D'.$num, $v['uname'])
            ->setCellValueExplicit('E'.$num, $v['utel'],$str)
            ->setCellValueExplicit('F'.$num, $time,$str)
            ->setCellValueExplicit('G'.$num, $v['ip'],$str)
            ->setCellValue('H'.$num, $status)
            ->setCellValue('I'.$num, $v['desc1'])
            ->setCellValue('J'.$num, $v['desc2']);
        }
        //在浏览器输出,就是为了弹出一个下载框
        header('Content-Type: application/vnd.ms-excel');
        header("Content-Disposition: attachment;filename=$filename");
        header('Cache-Control: max-age=0');
        header('Cache-Control: max-age=1');
        header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
        header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
        header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
        header ('Pragma: public'); // HTTP/1.0
       
        $objwriter = \PHPExcel_IOFactory::createWriter($phpexcel, 'Excel5');
        $objwriter->save('php://output');

4,属性方法说明

设置单元格数据

setCellValue('B'.$num, $v['name'])

指定单元格的文本格式,否则大数字就会被转出科学计数法了

这是文本格式

$str=\PHPExcel_Cell_DataType::TYPE_STRING;

setCellValueExplicit('E'.$num, $v['utel'],$str)

设置单元格大小?还没试过,以后补充


原创粉丝点击