大师已去 2019-01-09 16:23 采纳率: 0%
浏览 771

php excel输出 数据之外的表格丢失

图片说明

下面是输出代码

public function excel($data = [])
    {
        try {

            // 实例化excel类
            $objPHPExcel = new PHPExcel();
            // 操作第一个工作表
            $objPHPExcel->setActiveSheetIndex(0);
            // 设置sheet名
            $objPHPExcel->getActiveSheet()->setTitle('采购需求表');

            // 设置表格宽度
            $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(6);
            $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(15);
            $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(8);
            $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(15);

            // 表名文字加粗
            $objPHPExcel->getActiveSheet()->getStyle('A1:M1')->getFont()->setBold(true)->setSize(18);
            // 列表头文字居中
            $objPHPExcel->getActiveSheet()->getStyle('A1:M1')->getAlignment()
                ->setHorizontal('center');
            // 合并
            $objPHPExcel->getActiveSheet()->mergeCells('A1:M1');
            // 列名赋值    
            $objPHPExcel->getActiveSheet()->setCellValue('A1', '采购需求明细表');

            // 表头文字加粗
            $objPHPExcel->getActiveSheet()->getStyle('A2:M2')->getFont()->setBold(true);
            // 列表头文字居中
            $objPHPExcel->getActiveSheet()->getStyle('A2:M2')->getAlignment()->setHorizontal('center');

            $objPHPExcel->getActiveSheet()->setCellValue('A2', '统单日期');
            $objPHPExcel->getActiveSheet()->setCellValue('B2', '品种');
            $objPHPExcel->getActiveSheet()->setCellValue('C2', '规格');
            $objPHPExcel->getActiveSheet()->setCellValue('D2', '单位');
            $objPHPExcel->getActiveSheet()->setCellValue('E2', '订单数量');
            $objPHPExcel->getActiveSheet()->setCellValue('F2', '库存数量');
            $objPHPExcel->getActiveSheet()->setCellValue('G2', '在途数量');
            $objPHPExcel->getActiveSheet()->setCellValue('H2', '采购数量');
            $objPHPExcel->getActiveSheet()->setCellValue('I2', '辅助单位');
            $objPHPExcel->getActiveSheet()->setCellValue('J2', '辅助数量');
            $objPHPExcel->getActiveSheet()->setCellValue('K2', '要求到货日期');
            $objPHPExcel->getActiveSheet()->setCellValue('L2', '采购员');
            $objPHPExcel->getActiveSheet()->setCellValue('M2', '备注');

            // 数据起始行
            $row_num = 3;
            // 向每行单元格插入数据
            foreach($data as $value)
            {
                // 设置单元格数值
                $objPHPExcel->getActiveSheet()->setCellValue('A' . $row_num, $value['create_time']);
                $objPHPExcel->getActiveSheet()->setCellValue('B' . $row_num, $value['skuname']);
                $objPHPExcel->getActiveSheet()->setCellValue('C' . $row_num, $value['spec']);
                $objPHPExcel->getActiveSheet()->setCellValue('D' . $row_num, $value['unit']);
                $objPHPExcel->getActiveSheet()->setCellValue('E' . $row_num, $value['number']);
                $objPHPExcel->getActiveSheet()->setCellValue('F' . $row_num, $value['available_stock']);
                $objPHPExcel->getActiveSheet()->setCellValue('G' . $row_num, $value['transport_stock']);
                $objPHPExcel->getActiveSheet()->setCellValue('H' . $row_num, $value['purchase_num']);
                $objPHPExcel->getActiveSheet()->setCellValue('I' . $row_num, $value['metering_unit']);
                $objPHPExcel->getActiveSheet()->setCellValue('J' . $row_num, $value['metering']);
                $objPHPExcel->getActiveSheet()->setCellValue('K' . $row_num, $value['delivery_time']);
                $objPHPExcel->getActiveSheet()->setCellValue('L' . $row_num, $value['user']);
                $objPHPExcel->getActiveSheet()->setCellValue('M' . $row_num, $value['remark']);
                $row_num++;
            }

            $styleThinBlackBorderOutline = array(
                'borders' => array(
                    'allborders' => array( //设置全部边框
                        'style' => \PHPExcel_Style_Border::BORDER_THIN //粗的是thick
                    ),

                ),
            );
            $objPHPExcel->getActiveSheet()->getStyle( 'A1:M'.($row_num-1))->applyFromArray($styleThinBlackBorderOutline);
            $outputFileName = '采购需求表_' . time() . '.xls';
            $xlsWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
            header("Content-Type: application/force-download");
            header("Content-Type: application/octet-stream");
            header("Content-Type: application/download");
            header('Content-Disposition:inline;filename="' . $outputFileName . '"');
            header("Content-Transfer-Encoding: binary");
            header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
            header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Pragma: no-cache");
            $xlsWriter->save("php://output");
            exit;   
        } catch (\Exception $e) {
            $this->error = $e->getMessage();
            return false;
        }
        return true;

    }  
  • 写回答

1条回答 默认 最新

  • caihuan19890113 2019-01-11 17:41
    关注

    先检查$data数据的数据有没有问题,再一步步测试程序,这个导出类我也有用,正常!

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题