如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把<span>$yourStr从utf</span>-8转换成了gb2312: <span>$yourStr</span> = mb_convert_encoding("gb2312", "UTF-8", <span>$yourStr</span><span>); 总结 php导出Excel php导入Excel PhpExcel使用说明 PhpExcel使用手册 </span>1:第一推荐无比风骚的PHPExcel,官方网站: http:<span>//</span><span>www.codeplex.com/PHPExcel</span> <span>导入导出都成,可以导出office2007格式,同时兼容2003。 下载下来的包中有文档和例子,大家可以自行研究。 </span><? <span>//</span><span>设置PHPExcel类库的include path </span> <span>set_include_path</span>('.'. PATH_SEPARATOR .'D:\workspace\biznaligy_eh\dev_src\includes\PHPExcel' . PATH_SEPARATOR . <span>get_include_path</span><span>()); </span><span>/*</span><span>* * 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要 * 打开对应行的注释。 * 如果使用 Excel5 ,输出的内容应该是GBK编码。 </span><span>*/</span> <span>require_once</span> 'PHPExcel.php'<span>; </span><span>require_once</span> 'PHPExcel/Writer/Excel5.php'; <span>//</span><span> 用于其他低版本xls </span> <span>require_once</span> 'PHPExcel/Writer/Excel2007.php'; <span>//</span><span> 用于 excel-2007 格式 // 创建一个处理对象实例 </span> <span>$objExcel</span> = <span>new</span><span> PHPExcel(); </span><span>//</span><span> 创建文件格式写入对象实例, uncomment </span> <span>$objWriter</span> = <span>new</span> PHPExcel_Writer_Excel5(<span>$objExcel</span>); <span>//</span><span> 用于其他版本格式 //or //$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式 //$objWriter->setOffice2003Compatibility(true); //设置文档基本属性 </span> <span>$objProps</span> = <span>$objExcel</span>-><span>getProperties(); </span><span>$objProps</span>->setCreator("Zeal Li"<span>); </span><span>$objProps</span>->setLastModifiedBy("Zeal Li"<span>); </span><span>$objProps</span>->setTitle("Office XLS Test Document"<span>); </span><span>$objProps</span>->setSubject("Office XLS Test Document, Demo"<span>); </span><span>$objProps</span>->setDescription("Test document, generated by PHPExcel."<span>); </span><span>$objProps</span>->setKeywords("office excel PHPExcel"<span>); </span><span>$objProps</span>->setCategory("Test"<span>); </span><span>//</span><span>设置当前的sheet索引,用于后续的内容操作。 //一般只有在使用多个sheet的时候才需要显示调用。 //缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0 </span> <span>$objExcel</span>->setActiveSheetIndex(0<span>); </span><span>$objActSheet</span> = <span>$objExcel</span>-><span>getActiveSheet(); </span><span>//</span><span>设置当前活动sheet的名称 </span> <span>$objActSheet</span>->setTitle('测试Sheet'<span>); </span><span>//</span><span>设置单元格内容 由PHPExcel根据传入内容自动判断单元格内容类型 </span> <span>$objActSheet</span>->setCellValue('A1', '字符串内容'); <span>//</span><span> 字符串内容 </span> <span>$objActSheet</span>->setCellValue('A2', 26); <span>//</span><span> 数值 </span> <span>$objActSheet</span>->setCellValue('A3', <span>true</span>); <span>//</span><span> 布尔值 </span> <span>$objActSheet</span>->setCellValue('A4', '=SUM(A2:A2)'); <span>//</span><span> 公式 //显式指定内容类型 </span> <span>$objActSheet</span>->setCellValueExplicit('A5','8757584',PHPExcel_Cell_DataType::<span>TYPE_STRING); </span><span>//</span><span>合并单元格 </span> <span>$objActSheet</span>->mergeCells('B1:C22'<span>); </span><span>//</span><span>分离单元格 </span> <span>$objActSheet</span>->unmergeCells('B1:C22'<span>); </span><span>//</span><span>设置宽度 </span> <span>$objActSheet</span>->getColumnDimension('B')->setAutoSize(<span>true</span><span>); </span><span>$objActSheet</span>->getColumnDimension('A')->setWidth(30<span>); </span><span>//</span><span>设置单元格内容的数字格式。 //如果使用了 PHPExcel_Writer_Excel5 来生成内容的话, //这里需要注意,在 PHPExcel_Style_NumberFormat 类的 const 变量定义的 //各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode //为 FORMAT_NUMBER 的时候,实际出来的效果被没有把格式设置为"0"。需要 //修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法, //在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一 //行代码: //if($ifmt === '0') $ifmt = 1; //设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字 //被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容 //都按原始内容全部显示出来。</span> <span>$objStyleA5</span> = <span>$objActSheet</span> ->getStyle('A5'<span>); </span><span>$objStyleA5</span> ->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::<span>FORMAT_NUMBER); </span><span>//</span><span>设置字体 </span> <span>$objFontA5</span> = <span>$objStyleA5</span>-><span>getFont(); </span><span>$objFontA5</span>->setName('Courier New'<span>); </span><span>$objFontA5</span>->setSize(10<span>); </span><span>$objFontA5</span>->setBold(<span>true</span><span>); </span><span>$objFontA5</span>->setUnderline(PHPExcel_Style_Font::<span>UNDERLINE_SINGLE); </span><span>$objFontA5</span> ->getColor()->setARGB('FFFF0000'<span>) ; </span><span>$objFontA5</span> ->getColor()->setARGB( PHPExcel_Style_Color::<span>COLOR_WHITE); </span><span>//</span><span> $ objFontA5 ->getFont()->setColor(PHPExcel_Style_Color::COLOR_RED); //设置对齐方式 </span> <span>$objAlignA5</span> = <span>$objStyleA5</span>-><span>getAlignment(); </span><span>$objAlignA5</span>->setHorizontal(PHPExcel_Style_Alignment::<span>HORIZONTAL_RIGHT); </span><span>$objAlignA5</span>->setVertical(PHPExcel_Style_Alignment::<span>VERTICAL_CENTER); </span><span>//</span><span>设置边框 </span> <span>$objBorderA5</span> = <span>$objStyleA5</span>-><span>getBorders(); </span><span>$objBorderA5</span>->getTop()->setBorderStyle(PHPExcel_Style_Border::<span>BORDER_THIN); </span><span>$objBorderA5</span>->getTop()->getColor()->setARGB('FFFF0000') ; <span>//</span><span> 边框color </span> <span>$objBorderA5</span>->getBottom()->setBorderStyle(PHPExcel_Style_Border::<span>BORDER_THIN); </span><span>$objBorderA5</span>->getLeft()->setBorderStyle(PHPExcel_Style_Border::<span>BORDER_THIN); </span><span>$objBorderA5</span>->getRight()->setBorderStyle(PHPExcel_Style_Border::<span>BORDER_THIN); </span><span>//</span><span>设置CELL填充颜色 </span> <span>$objFillA5</span> = <span>$objStyleA5</span>-><span>getFill(); </span><span>$objFillA5</span>->setFillType(PHPExcel_Style_Fill::<span>FILL_SOLID); </span><span>$objFillA5</span>->getStartColor()->setARGB('FFEEEEEE'<span>); </span><span>//</span><span>从指定的单元格复制样式信息. </span> <span>$objActSheet</span>->duplicateStyle(<span>$objStyleA5</span>, 'B1:C22'<span>); </span><span>//</span><span>添加图片 </span> <span>$objDrawing</span> = <span>new</span><span> PHPExcel_Worksheet_Drawing(); </span><span>$objDrawing</span>->setName('ZealImg'<span>); </span><span>$objDrawing</span>->setDescription('Image inserted by Zeal'<span>); </span><span>$objDrawing</span>->setPath('./zeali.net.logo.gif'<span>); </span><span>$objDrawing</span>->setHeight(36<span>); </span><span>$objDrawing</span>->setCoordinates('C23'<span>); </span><span>$objDrawing</span>->setOffsetX(10<span>); </span><span>$objDrawing</span>->setRotation(15<span>); </span><span>$objDrawing</span>->getShadow()->setVisible(<span>true</span><span>); </span><span>$objDrawing</span>->getShadow()->setDirection(36<span>); </span><span>$objDrawing</span>->setWorksheet(<span>$objActSheet</span><span>); </span><span>//</span><span>添加一个新的worksheet </span> <span>$objExcel</span>-><span>createSheet(); </span><span>$objExcel</span>->getSheet(1)->setTitle('测试2'<span>); </span><span>//</span><span>保护单元格 </span> <span>$objExcel</span>->getSheet(1)->getProtection()->setSheet(<span>true</span><span>); </span><span>$objExcel</span>->getSheet(1)->protectCells('A1:C22', 'PHPExcel'<span>); </span><span>//</span><span>显示网格线: </span> <span>$objPHPExcel</span>->getActiveSheet()->setShowGridlines(<span>true</span><span>); </span><span>//</span><span>显示隐藏列</span> <span>$objPHPExcel</span>->getActiveSheet()->getColumnDimension('C')->setVisible(<span>true</span><span>); </span><span>$objPHPExcel</span>->getActiveSheet()->getColumnDimension('D')->setVisible(<span>false</span><span>); </span><span>//</span><span>显示隐藏行</span> <span>$objPHPExcel</span>->getActiveSheet()->getRowDimension('10')->setVisible(<span>false</span><span>); </span><span>//</span><span>默认列宽</span> <span>$objPHPExcel</span>->getActiveSheet()->getDefaultColumnDimension()->setWidth(12<span>); </span><span>//</span><span>默认行宽</span> <span>$objPHPExcel</span>->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15<span>); </span><span>//</span><span>worksheet 默认style 设置 (和默认不同的需单独设置)</span> <span>$objPHPExcel</span>->getActiveSheet()->getDefaultStyle()->getFont()->setName('Arial'<span>); </span><span>$objPHPExcel</span>->getActiveSheet()->getDefaultStyle()->getFont()->setSize(8<span>); </span><span>$objPHPExcel</span>->getActiveSheet()->getDefaultStyle()-><span>getAlignment(); </span><span>$objPHPExcel</span>->getActiveSheet()->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::<span>HORIZONTAL_CENTER); </span><span>$objPHPExcel</span>->getActiveSheet()->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::<span>VERTICAL_CENTER); </span><span>//</span><span>输出内容 </span> <span>$outputFileName</span> = "output.xls"<span>; </span><span>//</span><span>到文件 </span><span> //</span><span>//$objWriter->save($outputFileName); //or //到浏览器 </span> <span>header</span>("Content-Type: application/force-download"<span>); </span><span>header</span>("Content-Type: application/octet-stream"<span>); </span><span>header</span>("Content-Type: application/download"<span>); </span><span>header</span>('Content-Disposition:inline;filename="'.<span>$outputFileName</span>.'"'<span>); </span><span>header</span>("Content-Transfer-Encoding: binary"<span>); </span><span>header</span>("Last-Modified: " . <span>gmdate</span>("D, d M Y H:i:s") . " GMT"<span>); </span><span>header</span>("Cache-Control: must-revalidate, post-check=0, pre-check=0"<span>); </span><span>header</span>("Pragma: no-cache"<span>); </span><span>$objWriter</span>->save('php://output'<span>); </span>?>

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

tomakephpapplicationsfaster,关注台词:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,关注台词:1)启用opcodeCachingwithapCutoredUcescriptexecutiontime.2)实现databasequerycachingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandredececonnection.4 limitsclection.4.4

依赖注入(DI)通过显式传递依赖关系,显着提升了PHP代码的可测试性。 1)DI解耦类与具体实现,使测试和维护更灵活。 2)三种类型中,构造函数注入明确表达依赖,保持状态一致。 3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

databasequeryOptimizationinphpinvolVolVOLVESEVERSEVERSTRATEMIESOENHANCEPERANCE.1)SELECTONLYNLYNESSERSAYCOLUMNSTORMONTOUMTOUNSOUDSATATATATATATATATATATRANSFER.3)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Dreamweaver CS6
视觉化网页开发工具

Atom编辑器mac版下载
最流行的的开源编辑器