zoukankan      html  css  js  c++  java
  • php用PHPWord库生成word文档的例子

    <?php
    	require_once '../libs/PHPWord/PHPWord/IOFactory.php';
    	require_once '../../config.php';
    	$PHPWord = new PHPWord();
    
    	/**********文本格式的word  text.php************/
    	// New portrait section
    
    	//逗号 分割字符串
    	$arr = $_REQUEST['arr'];
    	$a = explode(',',$arr);
    	//echo $arr;
    	date_default_timezone_set("Asia/Shanghai");//设置一个时区
    	$tm=date('Y-m-d H:i:s');
    
    	$section = $PHPWord->createSection();
    	$PHPWord->addFontStyle('rStyle', array('bold'=>false, 'italic'=>false, 'size'=>16));
    	$PHPWord->addParagraphStyle('pStyle', array('align'=>'center', 'spaceAfter'=>100));
    	$c = "前三日雨量报表";
    	$section->addText($c, 'rStyle', 'pStyle');
    	//生成表格
    	$styleTable = array('borderSize'=>6, 'borderColor'=>'006699', 'cellMargin'=>80);
    	$styleFirstRow = array('borderBottomSize'=>18, 'borderBottomColor'=>'0000FF', 'bgColor'=>'66BBFF');
    
    	// Define cell style arrays
    	$styleCell = array('valign'=>'center');
    	// Define font style for first row
    	$fontStyle = array('bold'=>true, 'align'=>'center');
    	//设置标题
    	$PHPWord->addFontStyle('rStyle', array('bold'=>true, 'italic'=>true, 'size'=>16));
    	$PHPWord->addParagraphStyle('pStyle', array('align'=>'center', 'spaceAfter'=>100));
    	// Add table style
    	$PHPWord->addTableStyle('myOwnTableStyle', $styleTable, $styleFirstRow);
    	// Add table
    	$table = $section->addTable('myOwnTableStyle');
    	// Add row设置行高
    	$table->addRow(500);
    
    	$table->addCell(2300, $styleCell)->addText('站码', $fontStyle);
    	$table->addCell(2300, $styleCell)->addText('站名', $fontStyle);
    	$table->addCell(2300, $styleCell)->addText('雨量', $fontStyle);
    	$table->addCell(2300, $styleCell)->addText('水文站监测类型', $fontStyle);
    	  
    	$conn = mssql_connect($config['mssql']['host'],$config['mssql']['user'],$config['mssql']['password']);
    	mssql_select_db($config['mssql']['dbname'],$conn);
    
    	$stm = date('Y-m-d H:i:s',strtotime('-3 days'));
    	$sql = "EXEC HNOW05_GETPPSPACE '','','".$stm."',1,1";
    	$res=mssql_query($sql);
    
    	while($arr = mssql_fetch_array($res)){
    	 $table->addRow();
    	 $table->addCell(2300)->addText($arr["STCD"]);
    	 $table->addCell(2300)->addText($arr["STNM"]);
    	 $table->addCell(2300)->addText($arr["P"]);
    	 if($arr["STTP"] == 'MM'){
    	  $table->addCell(2300)->addText('气象站');
    	 }else if($arr["STTP"] == 'BB'){
    	  $table->addCell(2300)->addText('蒸发站');
    	 }else if($arr["STTP"] == 'DD'){
    	  $table->addCell(2300)->addText('堰闸水文站'); 
    	 }else if($arr["STTP"] == 'TT'){
    	  $table->addCell(2300)->addText('落潮位站'); 
    	 }else if($arr["STTP"] == 'DP'){
    	  $table->addCell(2300)->addText('泵站'); 
    	 }else if($arr["STTP"] == 'SS'){
    	  $table->addCell(2300)->addText('墒情站'); 
    	 }else if($arr["STTP"] == 'PP'){
    	  $table->addCell(2300)->addText('雨量站'); 
    	 }else if($arr["STTP"] == 'ZZ'){
    	  $table->addCell(2300)->addText('河道水位水文站'); 
    	 }else if($arr["STTP"] == 'RR'){
    	  $table->addCell(2300)->addText('水库水文站'); 
    	 }else if($arr["STTP"] == 'ZG'){
    	  $table->addCell(2300)->addText('地下水站'); 
    	 }else if($arr["STTP"] == 'ZB'){
    	  $table->addCell(2300)->addText('分洪水位站'); 
    	 }
    	}
    	$section->addTextBreak(2);
    
    	$section = $PHPWord->createSection();
    	$PHPWord->addFontStyle('rStyle', array('bold'=>false, 'italic'=>false, 'size'=>16));
    	$PHPWord->addParagraphStyle('pStyle', array('align'=>'center', 'spaceAfter'=>100));
    	$c = "地质灾害";
    	$section->addText($c, 'rStyle', 'pStyle');
    
    	$content="根据市气象局未来24小时降雨预报和市水利局实时降雨数据,市国土资源局进行了地质灾害预报,请有关部门关注实时预警信息,做好地质灾害防范工作";
    	 $section->addText($content);
    	  // Add image elements
    	$section->addImage("images/image001.jpg", array('width'=>600, 'height'=>480, 'align'=>'center'));
    
    	// Save File
    	$fileName = "word报表".date("YmdHis");
    	header("Content-type: application/vnd.ms-word");
    	header("Content-Disposition:attachment;filename=".$fileName.".docx"); 
    	header('Cache-Control: max-age=0');
    	$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
    	$objWriter->save('php://output');
    ?>
    

      注意:要将PHPWordPHPWordTemplate.php中的setValue方法下的编码改成$replace = iconv('gbk', 'utf-8',$replace);其他的文件也要改成这种样式的。否则出现中文乱码。

  • 相关阅读:
    ORM取数据很简单!是吗?
    谨慎使用反射机制
    AxeSlide软件项目梳理
    Uncaught Error: Cannot find module 'strip-ansi'
    vue 子组件data属性为啥必须是一个函数
    new FormData()
    computed methods watch filters
    关于template标签用法总结(含vue中的用法总结)
    区分http请求状态码来理解缓存(协商缓存和强制缓存)
    canvas绘制--圆角多边形
  • 原文地址:https://www.cnblogs.com/rnckty/p/4106271.html
Copyright © 2011-2022 走看看