phpexcel可以动态合并单元格吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了phpexcel可以动态合并单元格吗?相关的知识,希望对你有一定的参考价值。
phpexcel可以动态合并单元格吗?
合并行的单元格
$objPHPExcel->getActiveSheet()->unmergeCells('A1:F1'); // 拆分
你可以去看下phpexcel文档 参考技术B 可以得,具体可以查看官方文档 参考技术C 是可以的,在PHPExcel中有这样的操作追问
代码应该怎写啊?
追答//下面是总结的几个使用方法include 'PHPExcel.php';
include 'PHPExcel/Writer/Excel2007.php';
//或者include 'PHPExcel/Writer/Excel5.php'; 用于输出.xls的
//创建一个excel
$objPHPExcel = new PHPExcel();
//保存excel—2007格式
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
//或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式
$objWriter->save("xxx.xlsx");
//设置当前的sheet
$objPHPExcel->setActiveSheetIndex(0);
//设置sheet的name
$objPHPExcel->getActiveSheet()->setTitle('Simple');
//设置单元格的值
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'String');
$objPHPExcel->getActiveSheet()->setCellValue('A2', 12);
$objPHPExcel->getActiveSheet()->setCellValue('A3', true);
$objPHPExcel->getActiveSheet()->setCellValue('C5', '=SUM(C2:C4)');
$objPHPExcel->getActiveSheet()->setCellValue('B8', '=MIN(B2:C5)');
//合并单元格
$objPHPExcel->getActiveSheet()->mergeCells('A18:E22');
//分离单元格
$objPHPExcel->getActiveSheet()->unmergeCells('A28:B28');
具体运用可以看下手册或者百度,
thinkphp3.2.3集成phpexcel1.8导出设置单元格合并
1 到这里下载classes里面的文件
https://github.com/PHPOffice/PHPExcel
2 然后放到 thinkphp的vendor 新建一个文件夹 Phpexcel 然后把文件放进去
3 在封装一个函数
function exportExcel($data, $savefile = null, $title = null, $sheetname = ‘sheet1‘) vendor(‘Phpexcel.PHPExcel‘); //从PHPMailer目录导class.phpmailer.php类文件 //import("Vendor.excel.phpexcel"); //若没有指定文件名则为当前时间戳 if (is_null($savefile)) $savefile = time(); //若指字了excel表头,则把表单追加到正文内容前面去 if (is_array($title)) array_unshift($data, $title); $objPHPExcel = new \\PHPExcel(); //Excel内容 $head_num = count($data); $obj = $objPHPExcel->setActiveSheetIndex(0); $obj->mergeCells(‘A1:K1‘); //第一行 $obj->setCellValue(‘A1‘,‘‘); $obj->mergeCells(‘A2:K2‘); //第二行 $obj->setCellValue(‘A2‘,‘好助教支付清单‘); $obj->mergeCells(‘A3:K3‘); //第三行 $obj->setCellValue(‘A3‘,‘用户:北交大出版社 时间:2019-01-12至2019-12-12练习册:200种 支付金额:20000元‘); $objPHPExcel->getActiveSheet()->getStyle(‘A2‘)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中 $objPHPExcel->getActiveSheet()->getStyle(‘A3‘)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中 $objPHPExcel->getActiveSheet()->getStyle(‘A2‘)->getFont()->setSize(20); //设置字体大小 $objPHPExcel->getActiveSheet()->getStyle(‘A3‘)->getFont()->setSize(12); //设置字体大小 $objPHPExcel->getActiveSheet()->getRowDimension(‘A2‘)->setRowHeight(40);//行高 $objPHPExcel->getActiveSheet()->getRowDimension(‘A3‘)->setRowHeight(30);//行高 foreach ($data as $k => $v) $row = $k + 5; //行 $nn = 0; foreach ($v as $vv) $col = chr(65 + $nn); //列 $obj->setCellValue($col . $row, $vv); //列,行,值 $nn++; //设置列头标题 for ($i = 0; $i < 9; $i++) $alpha = chr(65 + $i); //$objPHPExcel->getActiveSheet()->getColumnDimension($alpha)->setAutoSize(true); //单元宽度自适应 $objPHPExcel->getActiveSheet()->getColumnDimension($alpha)->setWidth(20); $objPHPExcel->getActiveSheet()->getStyle($alpha . ‘5‘)->getFont()->setSize(12); //设置大小 $objPHPExcel->getActiveSheet()->getStyle($alpha . ‘5‘)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中 $objPHPExcel->getActiveSheet()->getStyle($alpha . ‘5‘)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直居中 $objPHPExcel->getActiveSheet()->setTitle($sheetname); //题目 $objPHPExcel->setActiveSheetIndex(0); //设置当前的sheet header(‘Content-Type: application/vnd.ms-excel‘); header(‘Content-Disposition: attachment;filename="‘ . $savefile . ‘.xls"‘); //文件名称 header(‘Cache-Control: max-age=0‘); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007‘); //Excel5 Excel2007 $objWriter->save(‘php://output‘);
4 然后调用这个函数
$list=array(0=>array(‘1‘,‘5.3数学练习册‘,‘*‘,‘23121‘,‘23122‘,‘34000‘,‘140000‘,‘100‘,‘149900‘,‘*‘), 1=>array(‘‘,‘‘,‘founder‘,‘*‘,‘23123‘,‘23124‘,‘4‘,‘*‘,‘*‘,‘2019/1/12 21:12:32‘), 2=>array(‘‘,‘‘,‘nick‘,‘*‘,‘23124‘,‘23125‘,‘7‘,‘100‘,‘149900‘,‘*‘) ); $title = array(‘序号‘, ‘练习册名称‘, ‘终端用户‘, ‘累计数量(二维码)‘, ‘个数区间开始‘, ‘个数区间结束‘, ‘分成‘, ‘剩余处理费用‘, ‘最终支付‘, ‘购买时间‘); //设置要导出excel的表头 exportExcel($list, 1, $title);
5 然后结果的样子
以上是关于phpexcel可以动态合并单元格吗?的主要内容,如果未能解决你的问题,请参考以下文章