PHPExcel一些基础常用方法总结

 更新时间:2016年11月25日 17:30  点击:1933
下面我用了一个PHPExcel完整的实例来总结一下关于PHPExcel一些使用技巧汇总,大家可参考参考。
 代码如下 复制代码

<?
//设置PHPExcel类库的include path
set_include_path('.'. PATH_SEPARATOR .
                 'D:ZealPHP_LIBS' . PATH_SEPARATOR .
                 get_include_path());

/**
 * 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要
 * 打开对应行的注释。
 * 如果使用 Excel5 ,输出的内容应该是GBK编码。
 */
require_once 'PHPExcel.php';

// uncomment
////require_once 'PHPExcel/Writer/Excel5.php';    // 用于其他低版本xls
// or
////require_once 'PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式

// 创建一个处理对象实例
$objExcel = new PHPExcel();

// 创建文件格式写入对象实例, uncomment
////$objWriter = new PHPExcel_Writer_Excel5($objExcel);    // 用于其他版本格式
// or
////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式
//$objWriter->setOffice2003Compatibility(true);

//*************************************
//设置文档基本属性
$objProps = $objExcel->getProperties();
$objProps->setCreator("Zeal Li");
$objProps->setLastModifiedBy("Zeal Li");
$objProps->setTitle("Office XLS Test Document");
$objProps->setSubject("Office XLS Test Document, Demo");
$objProps->setDescription("Test document, generated by PHPExcel.");
$objProps->setKeywords("office excel PHPExcel");
$objProps->setCategory("Test");

//*************************************
//设置当前的sheet索引,用于后续的内容操作。
//一般只有在使用多个sheet的时候才需要显示调用。
//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0
$objExcel->setActiveSheetIndex(0);


$objActSheet = $objExcel->getActiveSheet();

//设置当前活动sheet的名称
$objActSheet->setTitle('测试Sheet');

//*************************************
//设置单元格内容
//
//由PHPExcel根据传入内容自动判断单元格内容类型
$objActSheet->setCellValue('A1', '字符串内容');  // 字符串内容
$objActSheet->setCellValue('A2', 26);            // 数值
$objActSheet->setCellValue('A3', true);          // 布尔值
$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式

//显式指定内容类型
$objActSheet->setCellValueExplicit('A5', '847475847857487584',
                                   PHPExcel_Cell_DataType::TYPE_STRING);

//合并单元格
$objActSheet->mergeCells('B1:C22');

//分离单元格
$objActSheet->unmergeCells('B1:C22');

//*************************************
//设置单元格样式
//

//设置宽度
$objActSheet->getColumnDimension('B')->setAutoSize(true);
$objActSheet->getColumnDimension('A')->setWidth(30);

$objStyleA5 = $objActSheet->getStyle('A5');

//设置单元格内容的数字格式。
//
//如果使用了 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 方法可以让每一行的内容
//都按原始内容全部显示出来。
$objStyleA5
    ->getNumberFormat()
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);

//设置字体
$objFontA5 = $objStyleA5->getFont();
$objFontA5->setName('Courier New');
$objFontA5->setSize(10);
$objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5->getColor()->setARGB('FF999999');

//设置对齐方式
$objAlignA5 = $objStyleA5->getAlignment();
$objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

//设置边框
$objBorderA5 = $objStyleA5->getBorders();
$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color
$objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

//设置填充颜色
$objFillA5 = $objStyleA5->getFill();
$objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objFillA5->getStartColor()->setARGB('FFEEEEEE');

//从指定的单元格复制样式信息.
$objActSheet->duplicateStyle($objStyleA5, 'B1:C22');


//*************************************
//添加图片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('ZealImg');
$objDrawing->setDescription('Image inserted by Zeal');
$objDrawing->setPath('./zeali.net.logo.gif');
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('C23');
$objDrawing->setOffsetX(10);
$objDrawing->setRotation(15);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(36);
$objDrawing->setWorksheet($objActSheet);


//添加一个新的worksheet
$objExcel->createSheet();
$objExcel->getSheet(1)->setTitle('测试2');

//保护单元格
$objExcel->getSheet(1)->getProtection()->setSheet(true);
$objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel');


//*************************************
//输出内容
//
$outputFileName = "output.xls";
//到文件
////$objWriter->save($outputFileName);
//or
//到浏览器
////header("Content-Type: application/force-download");
////header("Content-Type: application/octet-stream");
////header("Content-Type: application/download");
////header('Content-Disposition:inline;filename="'.$outputFileName.'"');
////header("Content-Transfer-Encoding: binary");
////header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
////header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
////header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
////header("Pragma: no-cache");
////$objWriter->save('php://output');

?>

我们会看到很多网站都可以实时的显示当时当地的天气,下面我来告诉你这种实时天气的做吧,利用google aip接口即可实现获取不同城市的天气并显示在自己网站上。

se.php

 代码如下 复制代码

<?php
$city = $_GET['city'];
$data = createXml($city);
 
$xml = simplexml_load_string($data);
header("Content-type: text/xml");
echo $xml->asXML();
 
// 生成XML数据
function createXml($city)
{
    // Google 天气API
    $weather = simplexml_load_file("http://www.google.com/ig/api?weather={$city}");
    if(isset($weather->weather->forecast_conditions))
    {
        $low = f2c($weather->weather->forecast_conditions->low['data']);
        $high = f2c($weather->weather->forecast_conditions->high['data']);
        return "<weather>n<city>{$city}</city>n<low>{$low}</low>n<high>{$high}</high></weather>n";
    }
    else
    {
        return "<weather>n</weather>n";
    }
}
 
// 华氏度转摄氏度
function f2c($fahrenhite)
{
    return floor(($fahrenhite - 32) / 1.8);
}

 

客户端 c.php

 

 代码如下 复制代码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>天气查询</title>
</head>
<body>
<form method="post" action="">
<select name="city">
<option value="0">请选择</option>
<option value="beijing">北京</option>
<option value="shanghai">上海</option>
<option value="guangzhou">广州</option>
<option value="wuhan">武汉</option>
</select>
<input type="submit" />
</form>
 
<?php
if(!empty($_POST['city']))
{
    $city = $_POST['city'];
    $xml = simplexml_load_file("http://127.0.0.1/rest/se.php?city={$city}");
    $html = "<p>City:{$xml->city}</p>n";
    $html .= "<p>Low:{$xml->low}</p>n";
    $html .= "<p>High:{$xml->high}</p>n";
    echo $html;
}
?>
</body>
</html>
我们经常会在网站中看到可以直接把网站以快捷方式保存到自己的电脑中,然后只要点击就可以实现进入网了,那么php中怎么把网页添加到桌面快捷方式呢。

功能简单,直接上代码。

 代码如下 复制代码

<a href='shortcuts.php'>火星时代IT开发</a>


shortcuts.php 代码

 代码如下 复制代码

$Shortcut = "
[InternetShortcut]
URL=http://www.111cn.net
IDList=IconFile=http://www.111cn.net/favicon.ico
Prop3=19,2";
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=111cn.url");
echo $Shortcut;

下面还提供一种方法

 代码如下 复制代码

<?php
$Shortcut = "[InternetShortcut]
URL=http://www.111cn.net/
IDList=
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
";
Header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=11cn.url;");
echo $Shortcut;
?>

下面我来分析了长文章分页与文章分页程序代码,有需要的朋友可参考参考。

办法一、按字数控制进行分页

按字数分页办法简单易用,但效果不好。

大致思想:首先、设定每页能容纳的最大字数;然后、计算文章内容的总字数,再由总字数和单页最大字数计算出出总页数。这样整个分页的准备工作就已经做好了。

具体到每一页的显示内容可以通过内容截取来实现。比如:页容纳500字,文章内容有2200字,那么当页面传递page=2时应该显示第501至1000之间的内容。

这种办法简单,但显示时可能会遇到麻烦,文章内容通常伴有HTML标签,进行内容切割时实现HTML标签的闭合有一定难度,如果这个工作没做好,那么分页后的效果显然也是不好的。

 代码如下 复制代码

 <?php 


$content1="内容要很长。。。。。。";

$current=$_REQUEST['page_t'];
 $result=ff_page($content1,$current);
 echo $result;

 function ff_page($content,$page)   
    {   
    global $expert_id; 
   
    if (empty($page)) {
         $page = 1 ;
    }  //给$page赋初始值
   
    $PageLength = 2000; //每页字数   
    $CLength = strlen($content);  //文章长度 
    $PageCount = floor(($CLength / $PageLength)) + 1; //计算页数   
    $PageArray=array();//断页位置数组     
    $Seperator = array("n","r","。","!","?",";",",","”","’",".","!","?",";"); //分隔符号   
   
    //echo "页数:".$PageCount."<br >";   
    //echo "长度:".$CLength."<br >";   
    //strpos() 函数返回字符串在另一个字符串中第一次出现的位置   
   
    if($CLength <= $PageLength)   
     {   
        echo $content;   
     }//如果只有一页,直接打印
       else{   
        $PageArray[0]=0;   
        $Pos = 0;   
        $i=0;   
     //第一页,print_r($Seperator);  
    for( $j=0 ; $j < sizeof($Seperator); $j++)   
       {   
      $Pos=strpos($content,$Seperator[$j],$PageArray[$i]+1900); 
      while($Pos > 0 && $Pos<($i+1)*$PageLength && $Pos > $i*$PageLength )   
      {   
     $PageArray[$i] = $Pos ;
     if ($Pos+$PageLength > $CLength)
     {
         $start_p = $CLength-1 ;  
     }
     else{
         $start_p = $Pos+$PageLength ;
     }
     //给一个找寻位置的起始点,防止超过位置总字符数   
     $Pos = strpos($content,$Seperator[$j],$start_p) ;    
      }
        //如果已经找到分页点,跳出循环
        if($PageArray[$i]>0)   
        {   
         $j = $j + sizeof($Seperator) + 1;
        }   
 }    
 
    for( $i = 1; $i < $PageCount-1; $i++ )
    {   
       for( $j = 0 ; $j < sizeof($Seperator); $j++)   
       {        
         $Pos=strpos($content,$Seperator[$j],$PageArray[$i-1]+1900);  
     while($Pos > 0 && $Pos < ($i+1)*$PageLength && $Pos > $i*$PageLength )   
   {   
      $PageArray[$i] = $Pos ;        
      if ($Pos+$PageLength > $CLength)
      {
         $start_p2 = $CLength-1 ;  
      }
      else{
         $start_p2 = $Pos+$PageLength ;
      }
      $Pos = strpos($content,$Seperator[$j],$start_p2) ;   
    }   
   if($PageArray[$i]>0)   
   {   
    $j = $j + sizeof($Seperator) + 1;   
   }   
    }   
   }   
    //--PHP长文章分页函数最后一页    
    $PageArray[$PageCount-1] = $CLength;
    //$page=2;   
 
    if($page==1)   
 {   
     $output=substr($content,0,$PageArray[$page-1]+2);   
 }   
    if($page > 1 && $page <= $PageCount)   
 {   
  $output=substr($content,$PageArray[$page-2]+2,$PageArray[$page-1]-$PageArray[$page-2]);   
  $output=" (上接第".($page-1)."页)n".$output;   
 }   
   
//  echo str_replace("n","<br >&nbsp;&nbsp;&nbsp;",$output); //回车换行,根据需要调整   
    echo $output ; 
       
 if($PageCount > 1)   
 {   
    echo "<br ><center>";   
    echo "<font color='ff0000'>".$page."</font>/".$PageCount."页 &nbsp;";   
    if($page>1)   
     echo "<a href=$PHP_SELF?expert_id=$expert_id&page_t=".($page-1).">上一页</a> ";   
    else   
      echo "上一页 ";   
        
    for( $i=1 ; $i <= $PageCount ; $i++)   
    {   
     echo "<a href=$PHP_SELF?expert_id=$expert_id&page_t=".$i.">[".$i."]</a> ";   
    }   
      
    if($page < $PageCount)   
        echo " <a href=$PHP_SELF?expert_id=$expert_id&page_t=".($page+1).">下一页</a> ";   
  else   
   echo " 下一页 ";   
  echo "</center>";   
    }   
 }   
}

?> 


办法二、通过分页符进行分页

通过分页符进行分页比起第一种办法要更为理想。

大致思想:在编辑文章内容时往内容里面插入分页符(如:<hr>),在文章显示时对文章内容进行分割,每一部分表示一个页的内容,通过传递参数控制显示第几页。

这种办法比较人性化,毕竟通过人工控制出来的分页截取的内容更符全我们的思维,而且可以一定程度上避免HTML标签不闭合的情形。

文章内容分页代码,是根据由编辑器插入的分页符来操作了,我们可以分出超漂亮的偏移效果的分页。

 代码如下 复制代码

class contentpage
{
 private $content;  //文章内容
 private $pagesize;    //每页最少字节数
 private $breakflag;  //分页符(可以自定义,默认为n)
 private $pageurl;  //url地址
 private $pagevar;  //分页参数
 public  $pagecount;  //总页数
 public  $page;   //当前页码
 public  $pagebreak;  //每页起始位置

 function __construct($content = "",$pagesize = 10,$breakflag ="n",$pageurl = '',$pagevar = 'p')
 {
  $this->content   = $content;
  $this->pagesize  = $pagesize;
  $this->breakflag = $breakflag;
  $this->pageurl   = $pageurl;
  $this->pagevar   = $pagevar;
  $this->getpages();
 }

 //总页数,每页的起始位置和结束位置
 public function getpages()
 {
  $contentlen   = strlen($this->content); //文章总字节数
  $this->pagebreak[0] = 0;
  $i = 0;
  $offset = $this->pagesize;
 
  for ($k=0;$k<$contentlen/$this->pagesize;$k++)
  {
   if($offset > $contentlen)
   {
    $i++;
    $this->pagebreak[$i] = $contentlen;
    break;
   }
   //查找$this->pagevar出现的位置
   $where = strpos($this->content,$this->breakflag,$offset);
   if($where > $contentlen or intval($where) < 1)
   {
    $i++;
    $this->pagebreak[$i] = $contentlen;
    break;
   }
   else
   {
    $i++;
    $this->pagebreak[$i] = $where;
    $offset = $where + $this->pagesize;
   }
  }
  $this->pagecount = $i;
  if(isset($_get[$this->pagevar]) && $_get[$this->pagevar] >1 && $_get[$this->pagevar] <= $this->pagecount)
  {
   $this->page = $_get[$this->pagevar];
  }
  else
  {
   $this->page = 1;
  }
 }

 //每页内容
 function getpage()
 {
  //截取当前页码的数据
  if($this->page > 1)
  {
   return substr($this->content,$this->pagebreak[$this->page-1]+1,$this->pagebreak[$this->page] - $this->pagebreak[$this->page-1]);
  }
  else
  {
   return substr($this->content,$this->pagebreak[$this->page-1],$this->pagebreak[$this->page] - $this->pagebreak[$this->page-1]);
  }

 }

 //分页条
 public function getpagenav()
 {
  if($this->page > 1)
  {
   $pagenav = "<a href='".$this->geturl()."=".($this->page-1)."' class='div'>上一页</a>&nbsp;&nbsp;";
  }

  //输出数字页码
  for($j=1;$j<=$this->pagecount;$j++)
  {
   if($j == $this->page)
   {
    $pagenav .= "<span class='divsi'>".$j."</span>&nbsp;&nbsp;";
   }
   else
   {
    $pagenav .= "<a href='".$this->geturl()."=".$j."' class='div'>".$j."</a>&nbsp;&nbsp;";
   }
  }
  //下一页
  if($this->page < $this->pagecount && $this->pagecount >1)
  {
   $pagenav .= "<a href='".$this->geturl()."=".($this->page+1)."' class='div'>下一页</a>&nbsp;&nbsp;";
  }
  return $pagenav;
 }
 //获取url地址
 public function geturl()
 {
  $url = $_server['request_uri'];
  $parse_url = parse_url($url);
  $query_url = $parse_url['query'];
 
  if($query_url)
  {
   $query_url = ereg_replace("(^|&)".$this->pagevar."=".$this->page,"",$query_url);
   $url = str_replace($parse_url['query'],$query_url,$url);
   if($query_url)
   {
    $url .= "&".$this->pagevar;
   }
   else
   {
    $url .= $this->pagevar;
   }
  }
  else
  {
   $url .= "?".$this->pagevar;
  }
  return $url;
 }
}

$content = "第一页:文章内容分页阿斯顿浪费空间阿斯顿来看福建省地方吉林省福建路口附近大手拉飞机上浪费的说浪费监理费
第二页:阿斯顿房间阿双方了解啊对萨拉开发记得谁来付款将令对方空间的来福建阿里是否
第三页:欧文炯诶哦生地拉开方面来看就继续超文章内容分页滤机蓝卡
第四页:欧文日据拉萨及发动四分啊就双方的将爱是发觉是文章内容分页否了。";
$model = new contentpage($content);
echo $model->getpage();  //输出分页内容
echo $model->getpagenav(); //输出页码
?>

<style type="text/css教程">
<!--
body {
 width:800px;
 margin:0 auto;
 margin-top:50px;
 font-size:12px;
}
a {
 color:#014ccc;
 text-decoration:none;
}
.div {
 float:left;
 cursor:pointer;
 font-weight:bold;
 margin-right:5px;
 display: block;
 padding:3px 7px;
 text-align:center;
 border:#bbdded solid 1px;
}
.divs {
 float:left;
 font-weight:bold;
 margin-right:5px;
 display: block;
 padding:3px 7px;
 text-align:center;
 border:#cccccc solid 1px;
}
.divsi {
 float:left;
 font-weight:bold;
 margin-right:5px;
 display: block;
 padding:3px 7px;
 text-align:center;
 background:#3399ff;
 color:#ffffff;
 border:#cccccc solid 1px;
}
.div:hover {
 background:#3399ff;
 color:#ffffff;
}
.divsi:hover {
 background:#3399ff;
 color:#ffffff;
}
-->
</style>

更多详细内容请查看:http://www.111cn.net/phper/php-gj/35233.htm

很早的时候,用php生成execl都是件麻烦的事,我一般都会用csv来替代,现在这类工具就很多了,并且比较成熟了。不光有excel的,word,pdf。

1,php excelreader操作excel的php类,生成,读取excel等。功能很强大。

下载地址:http://sourceforge.net/projects/phpexcelreader/

解压后,里面有很多例子,调用方法简单。

例1

 代码如下 复制代码

<?php
/**
 *
 * @copyright 2007-2012 Xiaoqiang.
 * @author Xiaoqiang.Wu <jamblues@gmail.com>
 * @version 1.01
 */
 
error_reporting(E_ALL);
 
date_default_timezone_set('Asia/ShangHai');
 
/** PHPExcel_IOFactory */
require_once '../Classes/PHPExcel/IOFactory.php';
 
 
// Check prerequisites
if (!file_exists("31excel5.xls")) {
 exit("not found 31excel5.xls.n");
}
 
$reader = PHPExcel_IOFactory::createReader('Excel5'); //设置以Excel5格式(Excel97-2003工作簿)
$PHPExcel = $reader->load("31excel5.xls"); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一??工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数
$highestColumm= PHPExcel_Cell::columnIndexFromString($colsNum); //字母列转换为数字列 如:AA变为27
 
/** 循环读取每个单元格的数据 */
for ($row = 1; $row <= $highestRow; $row++){//行数是以第1行开始
    for ($column = 0; $column < $highestColumm; $column++) {//列数是以第0列开始
        $columnName = PHPExcel_Cell::stringFromColumnIndex($column);
        echo $columnName.$row.":".$sheet->getCellByColumnAndRow($column, $row)->getValue()."<br />";
    }
}
 
?>

例2

 代码如下 复制代码

<?php
/**
 *
 * @copyright 2007-2012 Xiaoqiang.
 * @author Xiaoqiang.Wu <jamblues@gmail.com>
 * @version 1.01
 */
 
error_reporting(E_ALL);
 
date_default_timezone_set('Asia/ShangHai');
 
/** PHPExcel_IOFactory */
require_once '../Classes/PHPExcel/IOFactory.php';
 
 
// Check prerequisites
if (!file_exists("31excel5.xls")) {
 exit("not found 31excel5.xls.n");
}
 
$reader = PHPExcel_IOFactory::createReader('Excel5'); //设置以Excel5格式(Excel97-2003工作簿)
$PHPExcel = $reader->load("31excel5.xls"); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一??工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数
 
/** 循环读取每个单元格的数据 */
for ($row = 1; $row <= $highestRow; $row++){//行数是以第1行开始
    for ($column = 'A'; $column <= $highestColumm; $column++) {//列数是以A列开始
        $dataset[] = $sheet->getCell($column.$row)->getValue();
        echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."<br />";
    }
}
 
?>

2,phpdocx操作word的php类

PHPDocx是一个用于生成完全动态的、完全兼容的Word文档的PHP类库。

你可能需要直接从任何数据集合或者表格文件来生成报表。这些报表也许会包括图标、图片、表格、开头、结束等等数据。

PHPDocx能够使用一些预定义的模板文件来生成Word文档,这大大简化了工作量。使用很少的一些代码,你能够将PHPDocx集成到你的WEB站点或网络应用,这样能够为你的用户或雇员提供一个很有价值的服务。

 代码如下 复制代码

Basic example
// Include the PHPWord.php, all other classes were loaded by an autoloader
require_once 'PHPWord.php';

// Create a new PHPWord Object
$PHPWord = new PHPWord();

// Every element you want to append to the word document is placed in a section. So you need a section:
$section = $PHPWord->createSection();

// After creating a section, you can append elements:
$section->addText('Hello world!');

// You can directly style your text by giving the addText function an array:
$section->addText('Hello world! I am formatted.', array('name'=>'Tahoma', 'size'=>16, 'bold'=>true));

// If you often need the same style again you can create a user defined style to the word document
// and give the addText function the name of the style:
$PHPWord->addFontStyle('myOwnStyle', array('name'=>'Verdana', 'size'=>14, 'color'=>'1B2232'));
$section->addText('Hello world! I am formatted by a user defined style', 'myOwnStyle');

// You can also putthe appended element to local object an call functions like this:
$myTextElement = $section->addText('Hello World!');
$myTextElement->setBold();
$myTextElement->setName('Verdana');
$myTextElement->setSize(22);

// At least write the document to webspace:
$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save('helloWorld.docx');

下载地址:http://www.phpdocx.com/

在线演示地址:http://www.phpdocx.com/demo/sample-word-report

3,tcpdf操作pdf的php类

下载地址:http://sourceforge.net/projects/html2fpdf/?source=recommended

在线演示地址:http://www.tcpdf.org/examples.php

下载后,基本上都是有例子的,下载后的东西比较大,这是因为,里面有很多例子,供例子用的pdf,word文件这类,也有很多字体文件。要用的类文件其实并不大的。记录一下用的时候,就不用到处找了。哈哈。

TCPDF自带的65个examples之后,就能完全掌握它的使用方法了。

大体可以分为如下5个步骤:

1.      require_once导入tcpdf.php文件和config/lang/目录的相应语系

2.      实例化TCPDF

3.      设置PDF文档的格式,包括文档信息、页眉、页尾、字体、外间距、图片边框、分页等

4.      导入PDF文档的内容,可以是单行或多行简单字符串,也可以HTML格式的字符串等

5.      输出PDF文档

[!--infotagslink--]

相关文章

  • C# 10个常用特性汇总

    这篇文章主要介绍了C# 10个常用特性,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-09
  • PHP安装threads多线程扩展基础教程

    一、下载pthreads扩展下载地址:http://windows.php.net/downloads/pecl/releases/pthreads二、判断PHP是ts还是nts版通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说...2015-11-24
  • 编程新手必须掌握的:session与cookie的区别

    session和cookie是网站浏览中较为常见的两个概念,也是比较难以辨析的两个概念,但它们在点击流及基于用户浏览行为的网站分析中却相当关键。基于网上一些文章和资料的参阅,及作者个人的应用体会,对这两个概念做一个简单的阐述...2013-09-11
  • Flex网页布局基础入门及实例教程

    Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。本教程我们来学习一下Flex布局的基本语法知识及运用实例。 网页布局(layout)是CSS的一...2016-09-14
  • 一文秒懂JavaScript DOM操作基础

    通过这篇文章帮助大家快速学习JavaScript DOM操作基础的相关知识,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧...2021-04-30
  • 从零开始的html教程(7):html表单基础之一

    一聚教程网 从零开始的html教程(7),html表单的基础,零基础也能轻松学会html,希望大家喜欢 一、html的表单 表单负责网页中用户输入数据采集的功能,利用<form>标签来定...2016-12-31
  • python基础之局部变量和全局变量

    这篇文章主要介绍了python局部变量和全局变量,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下...2021-10-22
  • Painter基础教程之图像水管分享

    今天小编在这里就来给Painter的这一款软件的使用者们来说下基础教程之图像水管,各位想知道的使用者们,那么下面就快来跟着小编一起看看吧。 给各位Painter软件的使...2016-09-14
  • phpexcel导入xlsx文件报错xlsx is not recognised as an OLE file 怎么办

    phpexcel是一款php读写excel的插件了,小编有一个这样的功能要来实现,但是在导入xlsx时发现xlsx is not recognised as an OLE file 了,但是导入xls是没有问题了,碰到这种...2016-11-25
  • python开发App基础操作API使用示例过程

    这篇文章主要为大家介绍了python开发App基础操作API使用的示例过程有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...2021-10-30
  • 一篇文章带你了解C语言:入门基础(2)

    这篇文章主要介绍了C语言入门之基础知识详解,文中有非常详细的C语言使用教程及相关基础知识,对正在学习c语言的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-08-04
  • php中使用PHPExcel操作excel(xls)文件

    PHPExcel是php的一个插件,它可以实现读取excel文件也就是xls文件了,下面我们就来看一个PHPExcel操作excel(xls)文件例子,希望能帮助到各位。 读取中文的xls、csv文件...2016-11-25
  • Jquery ajax基础教程

    jQuery的Ajax带来了无需刷新的web页面革命。这里就详细介绍一下jQuery所涉及到的Ajax操作。(无需特殊说明,均需要有服务器配置,这里本人用的是Tomcat 7)1.基于请求加载文件数据这里的请求通常都是网页的某些操作,如点击等...2015-11-24
  • 深入解析Java反射之基础篇

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,这篇文章主要给大家介绍了关于Java反射之基础篇的相关资料,需要的朋友可以参考下...2021-11-18
  • 详解php常用数组函数实例

    这篇文章介绍了php中常用的数组与函数,非常具有价值,有兴趣的同学可以参考一下 本文实例总结了php常用数组函数。分享给大家供大家参考,具体如下: 1. array array_mer...2016-12-31
  • PHP编程常用技巧四则

    PHP编程常用技巧四则:   1.配置PHP文件目录   作为服务器端解释执行的脚本语言,PHP程序放置在某个服务器可以访问的目录下,一般可以通过修改Apache的httpd.conj...2016-11-25
  • 常用的css hack简单写法与兼容性介绍

    本文章来收藏了大量的关于在css中hack的用法及在不同浏览器下hack语法写法,有需要了解的朋友可参考一下。 区别不同浏览器的CSS hack写法: 区别IE6与FF: b...2017-07-06
  • 一篇文章带你深入了解javaIO基础

    这篇文章主要介绍了java 基础知识之IO总结的相关资料,Java中的I/O分为两种类型,一种是顺序读取,一种是随机读取,需要的朋友可以参考下,希望对你有帮助...2021-08-02
  • Python3 基础语法详解

    在本篇文章里小编给大家分享的是一篇关于Python3基础语法知识点总结内容,有兴趣的朋友们可以学习下,希望能够给你带来帮助...2021-10-08
  • .NET开发基础:从简单的例子理解泛型 分享

    .Net开发基础系列文章,对自己之前写过的代码备忘,如能给人予帮助,不甚荣幸。个人能力有限,如有差错或不足,请及时指正。...2021-09-22