当前位置: 首页 > news >正文

php利用createSheet生成excel表格(控制行高列宽、文本自动换行及表头字体样式)

 函数内容概要

1、解决身份证被科学技术法问题

2、解决excel表头字体加粗标红问题

3、解决表格列中字符过多显示不全问题(根据内容多少自动换行)

/*** 写入excel文件信息** update: 添加去除身份证科学计数法判断** @param $data  文件内容* @param $title 表格名称* @param $savePath 表格保存路径* @return string* @throws \PHPExcel_Exception* @throws \PHPExcel_Reader_Exception* @throws \PHPExcel_Writer_Exception*/
function writerSerialXls($data, $title, $savePath='')
{$objPHPExcel = new Spreadsheet();$filename = $title . '-' . date('YmdHis') . '.xls';$objPHPExcel->createSheet();$objPHPExcel->setActiveSheetIndex(0); //设置第一个工作表为活动工作表$objPHPExcel->getActiveSheet()->setTitle('sheet1'); //设置工作表名称$sheet = $objPHPExcel->getActiveSheet();// 获取A1单元格的样式$styleArray = ['font' => ['bold' => true,'color' => ['argb' => 'red']],'alignment' => ['horizontal' => 'center','wrapText' => true, // 启用自动换行 设置自动换行样式'vertical' => 'center',//lignment::VERTICAL_TOP, // 垂直对齐方式(可选)],];// 应用样式到表头 'A1:O1'$sheet->getStyle('A1:P1')->applyFromArray($styleArray);$styleCenterArray = ['alignment' => ['horizontal' => 'center','wrapText' => true, // 启用自动换行 设置自动换行样式'vertical' => 'center',],];foreach ($data as $k => $val) {//行 Row  7$rowHeight = 35;if($k == 0){// 设置第一行的行高$rowHeight = 60;}// $objPHPExcel->getActiveSheet()->getRowDimension($k)->setZeroHeight(true);//自适应行高   setRowHeight$sheet->getRowDimension($k+1)->setRowHeight($rowHeight);//自适应行高   foreach ($val as $i => $v) {//列  17 Column// 将列索引转换为字母(如 1 -> A, 2 -> B, 3 -> C)$colLetter = Coordinate::stringFromColumnIndex($i + 1);// 动态生成单元格坐标(如 A1, B2, C3 等)$cellCoordinate = $colLetter . ($k + 1);// 如果是身份证号列,强制存储为文本 解决身份证被科学技术法存储问题if ($i >= 0) {//算了,都存储为字符串型吧$sheet->setCellValueExplicit($cellCoordinate, $v, 'str');} else {$sheet->setCellValue($cellCoordinate, $v);}//所有文字居中显示$sheet->getCell($cellCoordinate)->getStyle()->applyFromArray($styleCenterArray);}}foreach ($data[0] as $i => $val) {//第一行  $i 列//每一列宽度if(in_array($i, [3,4,13,16])){//  $sheet->getColumnDimension(chr($i + 65))->setWidth(20);//[1,2,9,10$sheet->getColumnDimension(chr($i + 65))->setAutoSize(true);}}//输出$objWriter = IOFactory::createWriter($objPHPExcel, 'Xls');if(!$savePath){$savePath = '/runtime/storage/upload/error';}//创建文件夹if (!file_exists($savePath)) {mkdir($savePath,0777,true);}$objWriter->save($savePath . '/' . $filename);unset($objPHPExcel);return $savePath . '/' . $filename;
}

调用以上函数,可生成excel表格内容如下:

相关文章:

  • RestClient
  • 基于数字孪生的水厂可视化平台建设:架构与实践
  • 【python深度学习】Day 50 预训练模型+CBAM模块
  • Lighttpd 配置选项介绍
  • mysql教程笔记(四)-锁和innoDB存储引擎
  • 基于FPGA的PID算法学习———实现PI比例控制算法
  • 深度学习——简介
  • 【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
  • Vim 列操作命令完整学习笔记
  • EtherCAT 转 CANopen 网关与伺服器在配置软件上的配置步骤
  • 如何使用java把文件转成十六进制字符串
  • mybatisplus.BaseMapper#selectPage 使用方法
  • GO 语言中的flag包--易懂解释
  • 逆向工程:破解某金融App加密协议——在安全与法律的钢丝绳上行走
  • 常用数组方法、字符串方法、数组 ↔ 字符串 的转换、TS类型提示 (大全)
  • i++与++i的区别
  • B2B供应链交易平台多商户电商商城系统开发批发采购销售有哪些功能?发展现状如何?
  • 第14篇:数据库中间件的分布式配置与动态路由规则热加载机制
  • 使用 pytdx,`TdxHq_API` 接口下载数据的 AI 编程指引提示词
  • C++17 std::string_view:性能与便捷的完美结合
  • WordPress商品浏览权限/厦门百度seo点击软件
  • 做图素材网站开哪个vip好/连云港网站seo
  • 网站建设创意公司/广州网站建设技术外包
  • 网站数据泄露我们应该怎么做/郑州网络运营培训
  • 柏乡网站建设/seo网站优化建议
  • 网站的图片要会员才能下载怎么做/万能推广app