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‘);
?>

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

时间: 2024-12-11 21:19:51

php用PHPWord库生成word文档的例子的相关文章

php使用phpword插件生成word文档

php使用phpword插件生成word文档php使用phpword插件生成word文档,有需要的朋友可以参考参考. <?php require_once '../libs/PHPWord/PHPWord.php'; require_once '../libs/PHPWord/PHPWord/IOFactory.php'; require_once '../../config.php'; // require_once '../common/conn.php'; // New Word Docu

php用PHPExcel库生成Excel文档的例子

<?php require_once '../libs/PHPWord/PHPWord.php'; require_once '../libs/PHPWord/PHPWord/IOFactory.php'; require_once '../../config.php'; // New Word Document $PHPWord = new PHPWord(); $objExcel->getProperties()->setCreator("office 2003 excel

Laravel生成Word文档 - phpword

在项目实际开发或学习中,会遇到把数据导出生成word文档的需求.这里就用优雅.流行的laravel框架,来简单的教大家实现. phpword,它可以很方便的实现word文档的生成,同时可以在word中添加表格.目录.图片.超链接.页眉.页脚等功能强大. 安装phpWord 要求 强制性: PHP 5.3.3+ XML解析器扩展 Zend \ Escaper组件 Zend \ Stdlib组件 Zend \ Validator组件 可选的: -邮编扩展 - GD扩展 - XMLWriter扩展 -

使用PHPWORD 生成word文档

昨日使用了PHPword生成WORD文档,折腾了半天,终于折腾出来了. 特此记录一下,分享给大家使用. 1.下载最新PHPWORD 类库 http://phpword.codeplex.com/ 2.解决中文乱码问题. a) 情况一 /Writer/Word2007/Base.php文件内容349行,添加 $objWriter->writeAttribute('w:eastAsia', $font); // 添加这行 Section.php中找到代码$givenText = utf8_encod

用Aspose.Words for .NET动态生成word文档中的数据表格

1.概述 最近项目中有一个这样的需求:导出word 文档,要求这个文档的格式不是固定的,用户可以随便的调整,导出内容中的数据表格列是动态的,例如要求导出姓名和性别,你就要导出这两列的数据,而且这个文档不是导出来之后再调整而是导出来后已经是调整过了的.看到这里,您也许马上想到用模板导出!而且.NET中自带有这个组件:Microsoft.Office.Interop.Word,暂且可以满足需求吧.但这个组件也是有局限性的,例如客户端必须装 office组件,而且编码复杂度高.最麻烦的需求是后面那个-

C#简单实现动态数据生成Word文档并保存

今天正好有人问我,怎么生成一个报表式的Word文档. 就是文字的样式和位置相对固定不变,只是里面的内容从数据中读取. 我觉得类似这种的一般用第三方报表来做比较简便.但既然要求了Word,只好硬着头皮来. 网上的方法大多数都是从一个GridView或表中获得数据后向Word中添加一个表格. (图1) 我们使用Word模板来实现,方法如下: 1.首先需要向工程中的“引用”加入Word类库的引用(图2).我是Office 2003.其他版本可能略有不同.在COM里面 (图2) 2.用Word设计一个模

velocity模板技术生成word文档

本文介绍采用velocity技术在Java中生成word文档的方法. 1.新建一个word文档,编辑内容如下: 2.将上述word文档另存为htm格式的文件 3.新建一个Java Project项目velocityTest,加入Velocity所依赖的Jar包velocity-dep-1.5-beta2.jar. 4.在src目录下新建一个velocity.vm文件,将第二步生成的velocity.htm用文本编辑器打开,复制内容到velocity.vm中.内容如下: <html xmlns:v

ASP.NET生成WORD文档,服务器部署注意事项

网上转的,留查备用,我服务器装的office2007所以修改的是Microsoft Office word97 - 2003 文档这一个. ASP.NET生成WORD文档服务器部署注意事项 1.Asp.net 2.0在配置Microsoft Excel.Microsoft Word应用程序权限时 error: 80070005 和8000401a 的解决总   2007-11-01 11:30  检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-00000

POI加dom4j将数据库的数据按一定格式生成word文档

一:需求:将从数据库查处来的数据,生成word文档,并有固定的格式.(dom4j的jar包+poi的jar包) 二:解决:(1)先建立固定格式的word文档(2007版本以上),另存成为xml文件,作为模板.(修改xml节点,添加属性,用于标示要填固定数据的节点) (2)dom4j解析模板xml文件,将文件读入内存,并把数据库数据写入内存的xml模型中 (3)利用poi将内存中的含有数据库内容的xml模型转换成word内存模型,利用输出流输出word文档 三:DEMO [1]模板的word文档