首页 养生问答 疾病百科 养生资讯 女性养生 男性养生

PHP如何导出Excel文件

发布网友

我来回答

2个回答

懂视网

PHP如何实现表格Excel的导出

首先下载PHPExcel包并将包引入到项目中;然后实例化PHPExcel对象;接着设置表格的列,以及列队属性;再将数据添加到表格中;最后将表格文件数据输出即可。

PHPExcel

是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格

ThinkPHP示例

public function exportExcel()
{
 //先获取数据
 $where['comid'] = session('uid');
 $res = M('cheliang')->where($where)->select();
 // var_dump($res);die;

 //下面就是导出的步骤了
 vendor('PHPExcel0.Classes.PHPExcel');

 $objPHPExcel = new PHPExcel();
 $objPHPExcel->createSheet(0);
 $objPHPExcel->setActiveSheetIndex(0);
 //只需要把你想要的字段改成你自己需要的就可以了!!!
 $objPHPExcel->setActiveSheetIndex(0)
  ->setCellValue('A1', '考试人')
  ->setCellValue('B1', '车牌')
  ->setCellValue('C1', '考试时间')
  ->setCellValue('D1', '考试分数')
  ->setCellValue('E1', '签名');

 $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);//设置单元格宽度
 $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(50);//设置单元格宽度
 $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);//设置单元格宽度
 $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);//设置单元格宽度
 $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); //第一行是否加粗
 $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); //第一行是否加粗
 $objPHPExcel->getActiveSheet()->getStyle('C1')->getFont()->setBold(true); //第一行是否加粗
 $objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->setBold(true); //第一行是否加粗
 $objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->setBold(true); //第一行是否加粗
 //$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(16);  //第一行字体大小
 // 设置垂直居中
 $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
 $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
 $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
 $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
 $objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

 // 设置行高度
 $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20); //设置默认行高
 $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30); //第一行行高
 //循环添加数据,注意的是下面的$kk+2,是因为$kk是下标,从0开始的,而第一行是你的标题,所以要从第二行开始才是你的数据
 foreach ($data as $kk => $vv) {
  $no = $kk + 2;
  $currentSheet = $objPHPExcel->getActiveSheet();
  $currentSheet->setCellValue('A' . $no, $vv['xueyuan']['name']);
  $currentSheet->setCellValue('B' . $no, $vv['xueyuan']['chepaihao']);
  $currentSheet->setCellValue('C' . $no, date('Y-m-d H:i:s',$vv['addtime']).'至'.date('Y-m-d H:i:s',$vv['sbttime']));
  $currentSheet->setCellValue('D' . $no, $vv['score']);
  //设置单元格高度,这个是重点哦
  $currentSheet->getRowDimension($no) -> setRowHeight(40);
  // 图片生成
  $objDrawing[$kk] = new PHPExcel_Worksheet_Drawing();//这个就是生成图片的类(重点)
  $objDrawing[$kk]->setPath('./'.$vv['qmimg']);/图片的路径
  // 设置宽度高度
  $objDrawing[$kk]->setHeight(85);//照片高度
  $objDrawing[$kk]->setWidth(100); //照片宽度
  /*设置图片要插入的单元格*/
  $objDrawing[$kk]->setCoordinates('E'.$no);
  // 图片偏移距离
   $objDrawing[$kk]->setOffsetX(12);
   $objDrawing[$kk]->setOffsetY(12);
  $objDrawing[$kk]->setWorksheet($objPHPExcel->getActiveSheet());
 }

 $objPHPExcel->setActiveSheetIndex(0);
 header('Content-Type: application/vnd.ms-excel');

 header('Content-Disposition: attachment;filename="' . '文件名称'. '.xls"');
 header('Cache-Control: max-age=0');
 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
 $objWriter->save('php://output');
 exit;
}

推荐教程:《PHP教程》

热心网友

昨天项目里有个新需求,客户希望把一些数据能导出成为Excel表格,刚开始用PHP原生输入Excel表格,发现效果不是很理想,于是找到一个比较著名的库:PHPExcel。下面是一个简单的demo,分享给大家,希望可以帮到有同样需求的朋友。

1.百度:phpexcel,结果如图所示,点击第一个结果;
PHP导出Excel,PHP输入Excel

2.进入官网后,找到右边的download按钮,下载,下载完成的是一个压缩文件,解压放到你的项目目录里,根据个人情况而定;
PHP导出Excel,PHP输入Excel
PHP导出Excel,PHP输入Excel

3.因为这里给大家做演示,所以建了一个测试文件,有点基础的都能明白是怎么回事,下面进入代码;
PHP导出Excel,PHP输入Excel

4.

//引入PHPExcel库文件(路径根据自己情况)

include './phpexcel/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]");

}

PHP导出Excel,PHP输入Excel

5.

//表格数组

$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++;

}

}

PHP导出Excel,PHP输入Excel

6.

//创建Excel输入对象

$write = new PHPExcel_Writer_Excel5($excel);

header("Pragma: public");

header("Expires: 0");

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-Type:application/download");;

header('Content-Disposition:attachment;filename="testdata.xls"');

header("Content-Transfer-Encoding:binary");

$write->save('php://output');

PHP导出Excel,PHP输入Excel

7.打开页面,刷新的时候会弹出对话框,让你选择文件保存路径和文件名称,我直接放在了桌面上,如图所示;
PHP导出Excel,PHP输入Excel
PHP导出Excel,PHP输入Excel

8.打开表格后,数据和格式跟代码中的一致,说明PHP导出的Excel是正确的。如果出现错误,检查一下你的表格数组和数据数组吧。
PHP导出Excel,PHP输入Excel追问不是这样的,就是显什么样就打印什么样

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com