Home  >  Article  >  Backend Development  >  How to set table encoding in php excel

How to set table encoding in php excel

藏色散人
藏色散人Original
2021-07-15 09:11:462438browse

php excel method to set table encoding: first download PHPExcel; then create an EXCEL; finally set the encoding through the "function gbkToUtf8($gbk){...}" method and solve the garbled problem.

How to set table encoding in php excel

The operating environment of this article: Windows7 system, PHP7.1 version, DELL G3 computer

php How to set table encoding in excel?

PHPExcel export excel table and solution to Chinese garbled characters

This is what I wrote for my own reading. It will be updated continuously. All I can find are destined people~

GitHub download address: https://github.com/PHPOffice/PHPExcel

<?php
require_once &#39;./PHPExcel/Classes/PHPExcel.php&#39;;
//创建一个EXCEL
$objPHPExcel = new PHPExcel(); 
//设置当前的sheet
$objPHPExcel->setActiveSheetIndex(0);
//设置sheet的name
$getActiveSheet = $objPHPExcel->getActiveSheet();
$getActiveSheet->setTitle(&#39;Sheet名称&#39;);
//设置单元格的值
$getActiveSheet->setCellValue(&#39;A1&#39;, &#39;姓名&#39;);
$getActiveSheet->setCellValue(&#39;B1&#39;, &#39;部门&#39;);
$getActiveSheet->setCellValue(&#39;C1&#39;, &#39;工资&#39;);
//合并单元格
$getActiveSheet->mergeCells(&#39;C1:D1&#39;);//横向合并 纵向同理
//设置单元格填充颜色
$getActiveSheet->getStyle(&#39;A1&#39;)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$getActiveSheet->getStyle(&#39;A1&#39;)->getFill()->getStartColor()->setARGB(&#39;000099FF&#39;);
//设置字体样式
$getActiveSheet->setCellValue(&#39;A2&#39;, setMyFontStyle(&#39;张三&#39;));
$getActiveSheet->setCellValue(&#39;B2&#39;, setMyFontStyle(&#39;开发部&#39;));
$getActiveSheet->setCellValue(&#39;C2&#39;, setMyFontStyle(&#39;9999&#39;));
//设置文字水平居左(HORIZONTAL_LEFT,默认)、中(HORIZONTAL_CENTER)、右(HORIZONTAL_RIGHT)
$getActiveSheet->getStyle(&#39;A1&#39;)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//设置文字垂直居中
$getActiveSheet->getStyle(&#39;A1&#39;)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//设置自适应宽度
$letter = [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;];
for($z=0;$z<count($letter);$z++){
$getActiveSheet->getColumnDimension($letter[$z])->setAutoSize(true);
}
//设置固定宽度
$getActiveSheet->getColumnDimension(&#39;A&#39;)->setWidth(20);
//清除缓冲区,不加这句会报错
ob_end_clean();
//输出
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(&#39;Content-Type:text/html;Charset=utf-8;&#39;);
header(&#39;Content-Disposition:attachment;filename=表格.xlsx"&#39;);
header("Content-Transfer-Encoding:binary");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, &#39;Excel2007&#39;);
$objWriter->save(&#39;php://output&#39;);
exit;
//设置字体样式
function setMyFontStyle($text){
$objRichText = new PHPExcel_RichText();
$objRichText->createText("");
$objPayable = $objRichText->createTextRun($text);
$objPayable->getFont()->setBold(true);
$objPayable->getFont()->setItalic(true);
$objPayable->getFont()->setColor( new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED ) );
return $objRichText;
}
//解决导出中文乱码,按需使用
function gbkToUtf8($gbk){
$utf8 = iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $gbk);
return $utf8;
}
//解决导出中文乱码,按需使用
function utf8ToGbk($utf8){
$gbk = iconv(&#39;UTF-8&#39;, &#39;GB2312&#39;, $utf8);
return $gbk;
}

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of How to set table encoding in php excel. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn