美高梅平台下载-美高梅娱乐平台登录

热门关键词: 美高梅平台下载,美高梅娱乐平台登录

《php操作office文档技巧总结(美高梅娱乐平台登录

日期:2019-11-26编辑作者:美高梅平台下载

本文实例讲述了基于PHPexecl类生成复杂的报表表头。分享给大家供大家参考,具体如下:

本文实例分析了php排序算法。分享给大家供大家参考,具体如下:

本文实例讲述了PHP实现导出excel数据的类库用法。分享给大家供大家参考,具体如下:

以前一直有需求,能把Execl里面的数据导入数据库,并且把数据库里面的数据导出到Execl中。

美高梅娱乐平台登录,用PHP写排序,虽然PHP自动了很多排序方式,SQL语句也可以很快速的从数据库里有序的读出数据。但是不同的需求还有灵活

今天一个项目要做一个PHP导出数据用excel保存,在网上找到一个本来是想用phpexcel的,后来发现太难了,就换了一个但导出的歌声是XML

require_once dirname . '/../Classes/PHPExcel/IOFactory.php';class PHPExeclCore extends PHPExcel_IOFactory{ public static function SummerCreateExecl { self::SummerCreateExeclHead($Head,$data,"Excel2007"); } public static function SummerReadExecl { if { echo "Execl Not Exist"; } else { $PHPExeclObj = self::load; $sheetCount = $PHPExeclObj->getSheetCount(); //得到Execl中包含的Sheet工作簿的数量 for($i=0;$igetSheet; $highestRow = $ActiveSheet->getHighestRow(); // 取得总列数 $allColumn = $ActiveSheet->getHighestColumn(); //通过嵌套循环来读取sheet工作簿里面的内容 for($Col='A';$ColgetCell->getValue(); } } } } return $Data; } /* * 将数据写入到数据表中 * $Data Array 表示要插入进Execl数据 * $RuleData Array 表示数据格式的规则数组 * $i int 表示从第几行起的插入数据 * **/ public static function SummerInsertDateToExecl($sheet,$Head,$Data,$n=3,$RuleData=array { $SimpleHead = self::getHead; $row = $n; foreach($Data as $key=>$valueArr) { $m = 0; foreach { $StartCol = PHPExcel_Cell::stringFromColumnIndex.$row; $sheet->getCell->setValue; $sheet->getStyle->getAlignment()->applyFromArray( array( 'horizontal'=> PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, 'rotation' => 0, 'wrap' => TRUE, ) ); if(isset($SimpleHead[$k]['col'])) { $m = $m + $SimpleHead[$k]['col']-1; $endCol = PHPExcel_Cell::stringFromColumnIndex.$row; $sheet->mergeCells($StartCol.":".$endCol); } $m++; $type = false; if(isset($SimpleHead[$k]['type'])) { $type = $SimpleHead[$k]['type']; $AllowArray = $SimpleHead[$k]['allowarray']; } //设置单元格的数据验证 if { switch  { case 'list': self::setSelectionRange($sheet, $StartCol,$AllowArray); break; case 'range': self::setValueRange($sheet, $StartCol,$AllowArray); break; } } } $row ++ ; } } /* * 生成Execl单元格备注 * $sheet 当前的工作簿对象 * $Cell 需要设置属性的单元格 * $content 备注内容 * */ private static function setComment($sheet,$Cell,$content) { $sheet->getComment->setAuthor; $objCommentRichText = $sheet->getComment->createTextRun; $objCommentRichText->getFont; $sheet->getComment->createTextRun; $sheet->getComment->createTextRun; $sheet->getComment->setWidth; $sheet->getComment->setHeight; $sheet->getComment->setMarginLeft; $sheet->getComment->getFillColor; } /* * 现在单元格的有效数据范围,暂时仅限于数字 * $sheet 当前的工作簿对象 * $Cell 需要设置属性的单元格 * $ValueRange array 允许输入数组的访问 */ private static function setValueRange($sheet,$Cell,$ValueRange) { //设置单元格的的数据类型是数字,并且保留有效位数 $sheet->getStyle->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00); $ValueRange = explode; //开始数值有效访问设定 $objValidation = $sheet->getCell->getDataValidation(); $objValidation->setType( PHPExcel_Cell_DataValidation:: TYPE_WHOLE ); $objValidation->setErrorStyle( PHPExcel_Cell_DataValidation:: STYLE_STOP ); $objValidation->setAllowBlank; $objValidation->setShowInputMessage; //设置显示提示信息 $objValidation->setShowErrorMessage; //设置显示错误信息 $objValidation->setErrorTitle; //错误标题 $objValidation->setError('请输入数据范围在从'.$ValueRange[0].'到'.$ValueRange[1].'之间的所有值'); //错误内容 $objValidation->setPromptTitle; //设置提示标题 $objValidation->setPrompt('请输入数据范围在从'.$ValueRange[0].'到'.$ValueRange[1].'之间的所有值'); //提示内容 $objValidation->setFormula1; //设置最大值 $objValidation->setFormula2; //设置最小值 } private static function OutinputHeader { $fileName = str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="'.$fileName.'"'); header("Content-Transfer-Encoding: binary"); header("Last-Modified: " . gmdate . " GMT"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header; $objWriter->save; exit; } //数据控制,设置单元格数据在一个可选方位类 private static function setSelectionRange($sheet,$Cell,$rangeStr,$Title="数据类型") { $objValidation = $sheet->getCell->getDataValidation(); $objValidation -> setType(PHPExcel_Cell_DataValidation::TYPE_LIST) -> setErrorStyle(PHPExcel_Cell_DataValidation::STYLE_STOP) -> setAllowBlank -> setShowInputMessage -> setShowErrorMessage -> setShowDropDown -> setErrorTitle -> setError -> setPromptTitle -> setFormula1; } /* * 构建表头 * */ public static function RecursionCreateExecl { $PHPExecl = new PHPExcel(); $objWriter = self::createWriter($PHPExecl, 'Excel2007'); $PHPExecl->getProperties()->setCreator ->setLastModifiedBy ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory; $PHPExecl->setActiveSheetIndex; $sheet = $PHPExecl->getActiveSheet(); self::HandleHeadToNode; self::SummerInsertDateToExecl; self::OutinputHeader; } private static function HandleHeadToNode($sheet,$Head,$beginRow,$col,$StartCol) { foreach($Head as $key=>$cells) { $row = $beginRow; //表示行 $beginCol = PHPExcel_Cell::stringFromColumnIndex.$row; $sheet->getCell->setValue; //设置表格样式 $sheet->getStyle->getAlignment()->applyFromArray( array( 'horizontal'=> PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, 'rotation' => 0, 'wrap' => TRUE, ) ); $sheet->getStyle->getColor()->setARGB(PHPExcel_Style_Color::COLOR_DARKGREEN); //设置单元格的宽度 if(isset { $Cell = $sheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex; $Cell->setWidth; } //哥元素打上标记 if(isset { self::setComment($sheet, $beginCol, $cells['Content']); } $merge = false; //合并单元格 if { $col += $cells['col']-1; $merge = true; } if { $row += $cells['row']-1; $merge = true; } if { $endCol = PHPExcel_Cell::stringFromColumnIndex.$row; $sheet->mergeCells($beginCol.":".$endCol); } $row ++; $col ++; //表示有存在孩子节点 if(isset && is_array{ $cols = $StartCol; if(!self::IsExistChildren { $cols = $col-2; $StartCol = $col; } self::HandleHeadToNode($sheet,$cells['children'],$row,$cols,$StartCol); }else{ $StartCol = $col; } } } //判断自己的孩子节点中是否存在孙子节点 private static function IsExistChildren { foreach($Data as $key=>$value) { if(isset && is_array { return true; } } return false; } //获取底层数据 private static function getHead { foreach($Head as $key=>$value) { if(isset && is_array { self::getHead($value['children'],$Node); } else { $Node[] = $value; } } return $Node; }}$Head = array( array('value'=>'姓名','col'=>2,'row'=>2,'width'=>20,'type'=>'list','allowarray'=>'PHP开发工程师,PHP开发'), array('value'=>'第一天','col'=>2,'row'=>1,'width'=>20,'Content'=>'2014-12-29号', 'children'=> array( array('value'=>'上午','col'=>1,'width'=>20,'type'=>'range','allowarray'=>'10,100'), array('value'=>'下午','width'=>20), ), ), array('value'=>'第二天','col'=>2,'row'=>1,'width'=>20, 'children'=> array( array('value'=>'上午','width'=>20), array('value'=>'下午','width'=>20), ), ),);$data = array( array('PHP开发工程师','12','吃饭1','睡觉1','起床刷牙2','吃饭睡觉2'), array('PHP开发工程师','25','吃饭1','睡觉1','起床刷牙2','吃饭睡觉2'), array('PHP开发工程师','50','吃饭1','睡觉1','起床刷牙2','吃饭睡觉2'), array('PHP开发工程师','99','吃饭1','睡觉1','起床刷牙2','吃饭睡觉2'), array('PHP开发工程师','10','吃饭1','睡觉1','起床刷牙2','吃饭睡觉2'), );$Node = PHPExeclCore::RecursionCreateExecl;

运用所学的PHP基础知识。

类写的很简单,但很实用。只能简单的导出字符串和数字二种格式。

得到的效果也基本符合需求:

就是把一个数值中所以的数据按时间排序并且分行显示

如果你有兴趣,你可以拿去扩充了,基本够用。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php操作office文档技巧总结(包括word,excel,access,ppt)》、《PHP数组操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《php字符串用法总结》及《php常见数据库操作技巧汇总》

query_array($mysql->sql_select("user","userid,truename,year"," ")); //从数据库里面读出数据 $year = array(); //设置空数组 foreach { array_push; //把数据数组里面的时间数据入栈 } $year = array_unique; //去除数组中重复的数据 usort; //将数组中的数据按自然数排序 $num = count; //统计数据中数据的个数 /*处理函数*/ function isyear { $user = array(); //建立空数组 foreach { if { array_push; } } return $user; //返回数组 }?>
class Excel_XML{//定于私有变量,顶部标签private $header = "n";//底部标签private $footer = "";//定于行数组private $lines = array();//设置编码private $sEncoding;//设置类型private $bConvertTypes;//设置sheet名称private $sWorksheetTitle;//构造函数public function __construct( $sEncoding = 'UTF-8',$bConvertTypes = false,$sWorksheetTitle = 'Table1'){$this->bConvertTypes = $bConvertTypes;$this->setEncoding;$this->setWorksheetTitle;}//设置编码,在构造函数里面默认的事UTF-8格式public function setEncoding{$this->sEncoding = $sEncoding;}//设置excel的头public function setWorksheetTitle {$title = preg_replace ("/[\|:|/|?|*|[|]]/", "", $title);$title = substr ;$this->sWorksheetTitle = $title;}//增加行函数private function addRow {$cells = ""; //设置每个单元为空foreach { $type = 'String'; //默认类型是字符串 if ($this->bConvertTypes === true && is_numeric: //判断类型 { $type = 'Number'; } $v = htmlentities($v, ENT_COMPAT, $this->sEncoding); $cells .= "" . $v . "n";} $this->lines[] = "n" . $cells . "n"; //写入数组}//增加数组public function addArray {foreach  {$this->addRow ;}}//导出xmlpublic function generateXML ($filename = 'excel-export'){$filename = preg_replace('/[^aA-zZ0-9_-]/', '', $filename);header("Content-Type: application/vnd.ms-excel; charset=" . $this->sEncoding);header("Content-Disposition: inline; filename="" . $filename . ".xls"");echo stripslashes (sprintf($this->header, $this->sEncoding));echo "nsWorksheetTitle . "">nn";foreach ($this->lines as $line)echo $line;echo "nn";echo $this->footer;}}

本文由美高梅平台下载发布于美高梅平台下载,转载请注明出处:《php操作office文档技巧总结(美高梅娱乐平台登录

关键词:

View扩展包创建及删除应用视图文件的方法,以便

本文实例讲述了Laravel中基于ArtisanView扩展包创建及删除应用视图文件的方法。分享给大家供大家参考,具体如下: ...

详细>>

那么系统会默认启动OpenJDK

使用工具:SecureFX 7.0,SecureCRT 7.0 JCE cannot authenticate the provider NUIMCSCGIBE IbeProvider.class package nuim.cs.crypto.ibe; tomcat7 Perm...

详细>>

1.ArrayList   可以动态增长和缩减的索引序列,

ArrayList 一种可以动态增长和缩减的索引序列 1.ArrayList   可以动态增长和缩减的索引序列 1.java  Iterator 迭代器 Linke...

详细>>

FastCGI是语言无关的、可伸缩架构的CGI开放扩展

什么是Spawn-FCGI Spawn-FCGI是一个通用的FastCGI管理服务器,它是lighttpd中的一部份,很多人都用Lighttpd的Spawn-FCGI进行Fast...

详细>>