前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHPExcel生成表格简单实例讲解

PHPExcel生成表格简单实例讲解

作者头像
躺平程序员老修
发布2023-09-05 15:31:47
2070
发布2023-09-05 15:31:47
举报

phpexcel

DEMO代码如下(PHPExcel下载地址):

代码语言:javascript
复制
<?php

require_once './PHPExcel-1.8.1/Classes/PHPExcel.php';

//创建对象
$excel = new PHPExcel();

//Excel表格式,这里简略写了8列,必须大于等于表头元素个数
$letter = array('A','B','C','D','E','F','F','G');

//表头数组
$tableheader = array('学号','姓名','性别','年龄','班级');

//填充表头信息
for ($i = 0;$i < count($tableheader);$i++) {
    $excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");
}

//表格数组
$data = array(
    array('1','小王','男','20','100'),
    array('2','小李','男','20','101'),
    array('3','小张','女','20','102'),
    array('4','小赵','女','20','103')
);

//填充表格信息
for ($i = 2;$i <= count($data) + 1;$i++) {
$j = 0;
    foreach ($data[$i - 2] as $key=>$value) {
        $excel->getActiveSheet()->setCellValue("$letter[$j]$i","$value");
        $j++;
    }
}

//创建Excel输入对象
$write = new PHPExcel_Writer_Excel2007($excel);
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header('Content-Disposition:attachment;filename="成绩-' . date('Y-m-d') . '.xlsx"'); //文件名
header("Content-Transfer-Encoding:binary");
$write->save('php://output');

//指定保存位置
//$write->save('./xxx.xlsx');

以下代码为另一种遍历方式(博主的项目代码):

代码语言:javascript
复制
<?php

// $actions 形如 array[0=>obj{$key=>$val},1=>obj{$key=>$val}]
require_once '../PHPExcel-1.8.1/Classes/PHPExcel.php';

//创建对象
$excel = new PHPExcel();

//Excel表格式,这里简略写了8列,必须大于等于表头元素个数
$letter = array('A','B','C','D','E','F','F','G');

//表头数组
$tableheader = array('日期','操作者','动作','对象类型','ID', '对象名称');

  //循环填充表头信息
  for ($i = 0;$i < count($tableheader);$i++) {
      $excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");
  }

  //循环填充表格信息(这里是与上面的主要不同之处,有助于理解setCellValue的机制,我偷个懒随便改改就复制粘贴上来了)
  for ($k = 0; $k < count($actions); $k++) {
      $excel->getActiveSheet()->setCellValue("A" . strval($k + 2), $actions[$k]->date);
      $excel->getActiveSheet()->setCellValue("B" . strval($k + 2), $actions[$k]->actor);
      $excel->getActiveSheet()->setCellValue("C" . strval($k + 2), $actions[$k]->actionLabel);
      $excel->getActiveSheet()->setCellValue("D" . strval($k + 2), $actions[$k]->objectType]);
      $excel->getActiveSheet()->setCellValue("E" . strval($k + 2), $actions[$k]->objectID);
      $excel->getActiveSheet()->setCellValue("F" . strval($k + 2), $actions[$k]->objectName);
  }

//创建Excel输入对象
$write = new PHPExcel_Writer_Excel2007($excel);
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header('Content-Disposition:attachment;filename="动态-' . date('Y-m-d') . '.xlsx"');
header("Content-Transfer-Encoding:binary");
$write->save('php://output');

//指定保存位置
//$write->save('./xxx.xlsx');

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 以下代码为另一种遍历方式(博主的项目代码):
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档