PhpOffice相关注意点,下载图片,导出导入等功能

发布时间:2026/10/20 1:10:34
PhpOffice相关注意点,下载图片,导出导入等功能 一、导出表格注意点1.数字导出变成科学公式 参数两边加上 ”\t“$worksheet-setCellValue(C.$hang,\t.$v[title].\t);2.内外边框线 表格格式$styleOneArray[alignment[horizontal\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,// 水平居中vertical\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER//垂直居中],font[boldtrue],// 字体加粗];$worksheet-getStyle(A1.:D.$hang)-applyFromArray($styleOneArray);$worksheet-getStyle(A1.:D.$hang)-applyFromArray($styleTwoArray);3.自动换行$excel-getActiveSheet()-getStyle(A1:D.$hang)-getAlignment()-setWrapText(true);4.单元格添加背景$worksheet-getStyle(A2:I3)-getFill()-setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)-getStartColor()-setARGB(87CEFA);5.下载图片$url.;//下载链接$drawing[$hang]new\PhpOffice\PhpSpreadsheet\Worksheet\Drawing();$drawing[$hang]-setName(图片);$drawing[$hang]-setDescription(图片);$drawing[$hang]-setPath($url);$drawing[$hang]-setWidth(70);$drawing[$hang]-setHeight(70);$drawing[$hang]-setCoordinates(AC.$hang);$drawing[$hang]-setOffsetX(0);$drawing[$hang]-setOffsetY(0);$drawing[$hang]-setWorksheet($excel-getActiveSheet());6.表格行高$worksheet-getRowDimension($hang)-setRowHeight(28);7.单元格合并$excel-getActiveSheet()-mergeCells(A.$hang.:AF.$hang);8.单元格文本格式$worksheet-getCell(C.$hang)-setValueExplicit(,\PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);二、导入表格注意点1.时间转换2.是否为数字publicfunctionimport(){$file$this-request-post(file);$filestr_replace($this-domain_url,,$file);if(!$file){$this-error(__(Parameter %s can not be empty,file));}$filePathROOT_PATH.DS.public.DS.$file;// print_r($filePath);exit;if(!is_file($filePath)){$this-error(__(No results were found));}$extpathinfo($filePath,PATHINFO_EXTENSION);if(!in_array($ext,[csv,xls,xlsx])){$this-error(__(Unknown data format));}if($extcsv){$filefopen($filePath,r);$filePathtempnam(sys_get_temp_dir(),import_csv);$fpfopen($filePath,w);$n0;while($linefgets($file)){$linertrim($line,\n\r\0);$encodingmb_detect_encoding($line,[utf-8,gbk,latin1,big5]);if($encoding!utf-8){$linemb_convert_encoding($line,utf-8,$encoding);}if($n0||preg_match(/^.*$/,$line)){fwrite($fp,$line.\n);}else{fwrite($fp,.str_replace([,,],[,,],$line).\\n);}$n;}fclose($file)||fclose($fp);$readernewCsv();}elseif($extxls){$readernewXls();}else{$readernewXlsx();}$insert[];try{if(!$PHPExcel$reader-load($filePath)){$this-error(__(Unknown data format));}$currentSheet$PHPExcel-getSheet(0);$allRow$currentSheet-getHighestRow();$i1;for($j2;$j$allRow;$j){$insert[$i-1][csnametrim($currentSheet-getCell(B.$j)-getValue()),nametrim($currentSheet-getCell(C.$j)-getValue()),cssnametrim($currentSheet-getCell(D.$j)-getValue()),csssnametrim($currentSheet-getCell(E.$j)-getValue()),allmoneytrim($currentSheet-getCell(F.$j)-getValue()),catenametrim($currentSheet-getCell(G.$j)-getValue()),cstimetrim($currentSheet-getCell(H.$j)-getValue()),csareatrim($currentSheet-getCell(I.$j)-getValue())];$i;}}catch(Exception$exception){$this-error($exception-getMessage());}if(!$insert){$this-error(__(No rows were updated));}$insertArr[];$return[codetrue,msg成功];foreach($insertas$key$val){// print_r($val);exit;$temp[name]$val[name];$temp[csname]$val[csname];$temp[cssname]$val[cssname];$temp[allmoney]$val[allmoney];$temp[csarea]$val[csarea];//时间if(!empty($val[cstime])){$time$val[cstime];//表格时间样式$d25569;$t24*60*60;$checkdateintval(($time-$d)*$t);$checktimegmdate(Y-m-d H:i:s,$checkdate);$temp[cstime]!empty($checktime)?strtotime($checktime):0;}else{$return[codefalse,msg时间不为空];break;}//来源地省市if($val[csssname]){$areanew\app\common\model\Area;$wherea[];$wherea[name]$val[csssname];$temptzf[];$temptzf[other]false;$categorys$area-getOne(id,pid,name,shortname,$wherea,$temptzf);if($categorys[code]false){$return[codefalse,msg来源地[.$val[csssname].]不存在];break;}else{$tzflaiyuanname!empty($categorys[data])?$categorys[data][name]:;}}else{$return[codefalse,msg来源地不为空];break;}if(!is_numeric($val[csmoney])){$return[codefalse,msg不为数字];break;}if($val[csmoney]0){$return[codefalse,msg不为负值];break;}// print_r($temp);exit;$insertArr[]$temp;$resultDb::name(test)-insertGetId($temp);}if(!$return[code]){$this-error($return[msg]);}// $this-selfModel-allowField(true)-saveAll($insertArr);$this-success(导入成功);}三、PDF导出publicfunctiondaochupdf(){$id$this-request-request(id);$xmsnew\app\common\model\Xms();$where[];$where[id]$id;$ones$xms-getOne(,$where);$one$ones[data];$pdfnew\TCPDF(L,mm,A4,true,UTF-8,false);// 设置文档信息----文件创作者$pdf-SetCreator(PDF_CREATOR);$pdf-SetAuthor();$pdf-SetTitle($one[name]);$pdf-setPrintHeader(false);// 去除页眉下划线$pdf-setPrintFooter(false);// 去除页脚下划线// 设置默认等宽字体$pdf-SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);// 设置间距$pdf-SetMargins(1,1,1);$pdf-SetHeaderMargin(0);$pdf-SetFooterMargin(0);// 设置分页$pdf-SetAutoPageBreak(TRUE,PDF_MARGIN_BOTTOM);// 设置图像比例因子$pdf-setImageScale(PDF_IMAGE_SCALE_RATIO);// 设置默认字体构造子集模式global$l;$pdf-setLanguageArray($l);// 设置字体$pdf-SetFont(stsongstdlight,,10);// 添加一个页面$pdf-AddPage();if($one){$files$one[files];$html html head style .el-row { -webkit-box-sizing: border-box; box-sizing: border-box; position: relative; } .el-col-24 { width: 100%; } .title { line-height: 24px; background: #F1F7F5; padding-left: 5px; margin: 15px 0 5px; color: black; font-size: 14px; font-weight: bold; border-bottom: 2px solid #46BF93; } /style /head body div classel-row div classel-col el-col-24 div classtitle img srchttps://.com/assets/img/xqbot.png alt styleheight:24px;width: 10px;基本信息 /div /div /div div table tr td styleheight:30px;width: 150px;text-align: right;项目名称/td td styleheight:40px;width: 250px;text-align: left;padding-left: 20px;.$one[name].i styleheight:30px;font-size:8px;margin:3px;width:80px;color:#fff;background-color:.$one[status_color].;.$one[status_text]./i/td /tr tr td styleheight:30px;width: 150px;text-align: right;简介/td td stylewidth: 650px;text-align: left;padding-left: 20px;.$one[blurb]./td /tr tr td styleheight:20px;/td /tr tr td styleheight:30px;width: 150px;text-align: right;活动开展情况/td td styletext-align: left;padding-left: 20px;width: 450px; ul stylelist-style: none; ;foreach($filesas$k$v){$html. li img src.$v[url]. stylewidth:70px;height:70px;text-align: left;.$v[name]. /li;}$html./ul/td/tr/table/div/body/html;$pdf-writeHTML($html,true,false,true,false,);//$pdf-writeHTMLCell(0, 0, , , $html, LRTB, 1, 0, true, L, true);$pdf-lastPage();}$pdf-lastPage();// 默认是I在浏览器中打开D下载F在服务器生成pdf S只返回pdf的字符串个人感觉无实在意义// $pdf-Output(down.pdf, I);// exit;$title$one[name]..pdf;$dir/www/wwwroot/abc.abc.com/public/uploads/pdf/.$title;$pdf-Output($dir,I);exit;}

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询