李澧铵 發表於 2019-10-15 15:26:00

php生成Excel

<p>简单粗暴直接上代码</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">    /**
   * @param $res//二维数组(要保存的数据,$res为excel表头)
   * @param null $FileName//文件名
   * @param null $width   //每一列的宽度,键名与数据键名相同
   * @param string $rgb   //第一行背景颜色(16进制)
   * @return mixed
   * @throws \PHPExcel_Exception
   * @throws \PHPExcel_Writer_Exception
   */
    function Excel_Create($res,$FileName =null, $width=null,$rgb=null)
    {
      require_once 'Classes/PHPExcel.php';
//
      ob_end_clean();

      // 实例化excel类
      $objPHPExcel = new \PHPExcel();
      // 操作第一个工作表
      $objPHPExcel-&gt;setActiveSheetIndex(0);
      // 设置sheet名
      $objPHPExcel-&gt;getActiveSheet()-&gt;setTitle('Sheet1');

      // 列名表头文字加粗
      $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A1:Z1')-&gt;getFont()-&gt;setBold(true);
      // 列表头文字居中
      $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A1:Z1')-&gt;getAlignment()
            -&gt;setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

      //获取表头
      $keys = array_keys($res);

      // 列名赋值
      $col = 'A';
      foreach ($keys as $key) {
            // 列名赋值
            $objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue($col . '1', $res[$key]);

            if($rgb!=null){
                // 设置第一行颜色
                $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle($col . '1')-&gt;getFill()-&gt;applyFromArray(array(
                  'type' =&gt; \PHPExcel_Style_Fill::FILL_SOLID,
                  'startcolor' =&gt; array(
                        'rgb' =&gt; $rgb
                  )
                ));
            }

            //设置表格宽度
            if($width!=null){
                $objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension($col)-&gt;setWidth($width[$key]);
            }else{
                $objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension($col)-&gt;setWidth(20);
            }

            $col = chr(ord($col) + 1);
      }
      unset($res);

      // 数据起始行
      $row_num = 2;
      // 向每行单元格插入数据
      foreach ($res as $value) {
            // 设置所有垂直居中
            $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A' . $row_num . ':' . 'Z' . $row_num)-&gt;getAlignment()
                -&gt;setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
            // 设置价格为数字格式
//            $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('D' . $row_num)-&gt;getNumberFormat()
//                -&gt;setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);
            // 居中
            $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle('A' . $row_num . ':' . 'Z' . $row_num)-&gt;getAlignment()
                -&gt;setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

            // 设置单元格值
            $col = 'A';
            foreach ($keys as $key) {
                // 单元格赋值
                $objPHPExcel-&gt;getActiveSheet()-&gt;setCellValue($col . $row_num, $value[$key]);
                $col = chr(ord($col) + 1);
            }

            $row_num++;
      }

      if($FileName==null){
            $FileName=time();
      }

      $outputFileName = $FileName . '.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-type:application / vnd.ms-excel; charset = UTF-8");
//      header('Content-Disposition:attachment; filename =“'.iconv("gb2312",'utf-8',$outputFileName).'.xlsx”');
      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-&gt;save("php://output");
//      echo file_get_contents($outputFileName);
      return $res;
    }
</pre>
</div>
<p>  </p>
<p>  引入文件(PHPExcel.php)传送门 :http://xcdn.php.cn/leiku/chuli/PHPExcel-1.8.zip?sign=32bd8b6174060344d512ff228b4bc229&amp;timestamp=1571102641</p>
<p>                 &nbsp; :<span style="color: rgba(0, 0, 255, 1)"><span style="color: rgba(0, 0, 255, 1)">https://www.php.cn/xiazai/leiku/1491</span></span></p><br><br>
来源:https://www.cnblogs.com/beiman/p/11677947.html
頁: [1]
查看完整版本: php生成Excel