1.POWINTPOINT系列

  之前参与过一个商城的项目,里面有将excel 导出的功能,但是如果要弄成PPT的我们应该怎么办呢?PHP是属于服务器端的 总不能在里面装个Powintpoint吧。于是就有了下面的内容

  在国外找到了一个PPT的类库

  github:https://github.com/PHPOffice/PHPPresentation

  外国文档:http://phppresentation.readthedocs.io/en/latest/intro.html

  一个简单的案例分析

  1. <?php
  2.  
  3. use PhpOffice\PhpPresentation\PhpPresentation;
  4. use PhpOffice\PhpPresentation\Style\Alignment;
  5. use PhpOffice\PhpPresentation\Style\Bullet;
  6. use PhpOffice\PhpPresentation\Style\Color;
  7.  
  8. include_once 'Sample_Header.php';
  9.  
  10. $colorBlack = new Color( 'FF000000' );
  11.  
  12. // Create new PHPPresentation object
  13. echo date('H:i:s') . ' Create new PHPPresentation object'.EOL;
  14. $objPHPPresentation = new PhpPresentation();
  15.  
  16. // Set properties
  17. echo date('H:i:s') . ' Set properties'.EOL;
  18. $objPHPPresentation->getDocumentProperties()->setCreator('PHPOffice')
  19. ->setLastModifiedBy('PHPPresentation Team')
  20. ->setTitle('Sample 02 Title')
  21. ->setSubject('Sample 02 Subject')
  22. ->setDescription('Sample 02 Description')
  23. ->setKeywords('office 2007 openxml libreoffice odt php')
  24. ->setCategory('Sample Category');
  25.  
  26. // Remove first slide
  27. echo date('H:i:s') . ' Remove first slide'.EOL;
  28. $objPHPPresentation->removeSlideByIndex(0);
  29.  
  30. // Create templated slide
  31. echo date('H:i:s') . ' Create templated slide'.EOL;
  32. $currentSlide = createTemplatedSlide($objPHPPresentation); // local function
  33.  
  34. // Create a shape (text)
  35. echo date('H:i:s') . ' Create a shape (rich text)'.EOL;
  36. $shape = $currentSlide->createRichTextShape();
  37. $shape->setHeight(200);
  38. $shape->setWidth(600);
  39. $shape->setOffsetX(10);
  40. $shape->setOffsetY(400);
  41. $shape->getActiveParagraph()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_LEFT );
  42.  
  43. $textRun = $shape->createTextRun('Introduction to');
  44. $textRun->getFont()->setBold(true);
  45. $textRun->getFont()->setSize(28);
  46. $textRun->getFont()->setColor($colorBlack);
  47.  
  48. $shape->createBreak();
  49.  
  50. $textRun = $shape->createTextRun('PHPPresentation');
  51. $textRun->getFont()->setBold(true);
  52. $textRun->getFont()->setSize(60);
  53. $textRun->getFont()->setColor($colorBlack);
  54.  
  55. // Create templated slide
  56. echo date('H:i:s') . ' Create templated slide'.EOL;
  57. $currentSlide = createTemplatedSlide($objPHPPresentation); // local function
  58.  
  59. // Create a shape (text)
  60. echo date('H:i:s') . ' Create a shape (rich text)'.EOL;
  61. $shape = $currentSlide->createRichTextShape();
  62. $shape->setHeight(100)
  63. ->setWidth(930)
  64. ->setOffsetX(10)
  65. ->setOffsetY(50);
  66. $shape->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
  67.  
  68. $textRun = $shape->createTextRun('What is PHPPresentation?');
  69. $textRun->getFont()->setBold(true)
  70. ->setSize(48)
  71. ->setColor($colorBlack);
  72.  
  73. // Create a shape (text)
  74. echo date('H:i:s') . ' Create a shape (rich text)'.EOL;
  75. $shape = $currentSlide->createRichTextShape()
  76. ->setHeight(600)
  77. ->setWidth(930)
  78. ->setOffsetX(10)
  79. ->setOffsetY(130);
  80. $shape->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT)
  81. ->setMarginLeft(25)
  82. ->setIndent(-25);
  83. $shape->getActiveParagraph()->getFont()->setSize(36)
  84. ->setColor($colorBlack);
  85. $shape->getActiveParagraph()->getBulletStyle()->setBulletType(Bullet::TYPE_BULLET);
  86.  
  87. $shape->createTextRun('A class library');
  88. $shape->createParagraph()->createTextRun('Written in PHP');
  89. $shape->createParagraph()->createTextRun('Representing a presentation');
  90. $shape->createParagraph()->createTextRun('Supports writing to different file formats');
  91.  
  92. // Create templated slide
  93. echo date('H:i:s') . ' Create templated slide'.EOL;
  94. $currentSlide = createTemplatedSlide($objPHPPresentation); // local function
  95.  
  96. // Create a shape (text)
  97. echo date('H:i:s') . ' Create a shape (rich text)'.EOL;
  98. $shape = $currentSlide->createRichTextShape()
  99. ->setHeight(100)
  100. ->setWidth(930)
  101. ->setOffsetX(10)
  102. ->setOffsetY(50);
  103. $shape->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT );
  104.  
  105. $textRun = $shape->createTextRun('What\'s the point?');
  106. $textRun->getFont()->setBold(true)
  107. ->setSize(48)
  108. ->setColor($colorBlack);
  109.  
  110. // Create a shape (text)
  111. echo date('H:i:s') . ' Create a shape (rich text)'.EOL;
  112. $shape = $currentSlide->createRichTextShape();
  113. $shape->setHeight(600)
  114. ->setWidth(930)
  115. ->setOffsetX(10)
  116. ->setOffsetY(130);
  117. $shape->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT)
  118. ->setMarginLeft(25)
  119. ->setIndent(-25);
  120. $shape->getActiveParagraph()->getFont()->setSize(36)
  121. ->setColor($colorBlack);
  122. $shape->getActiveParagraph()->getBulletStyle()->setBulletType(Bullet::TYPE_BULLET);
  123.  
  124. $shape->createTextRun('Generate slide decks');
  125. $shape->createParagraph()->getAlignment()->setLevel(1)
  126. ->setMarginLeft(75)
  127. ->setIndent(-25);
  128. $shape->createTextRun('Represent business data');
  129. $shape->createParagraph()->createTextRun('Show a family slide show');
  130. $shape->createParagraph()->createTextRun('...');
  131.  
  132. $shape->createParagraph()->getAlignment()->setLevel(0)
  133. ->setMarginLeft(25)
  134. ->setIndent(-25);
  135. $shape->createTextRun('Export these to different formats');
  136. $shape->createParagraph()->getAlignment()->setLevel(1)
  137. ->setMarginLeft(75)
  138. ->setIndent(-25);
  139. $shape->createTextRun('PHPPresentation 2007');
  140. $shape->createParagraph()->createTextRun('Serialized');
  141. $shape->createParagraph()->createTextRun('... (more to come) ...');
  142.  
  143. // Create templated slide
  144. echo date('H:i:s') . ' Create templated slide'.EOL;
  145. $currentSlide = createTemplatedSlide($objPHPPresentation); // local function
  146.  
  147. // Create a shape (text)
  148. echo date('H:i:s') . ' Create a shape (rich text)'.EOL;
  149. $shape = $currentSlide->createRichTextShape();
  150. $shape->setHeight(100)
  151. ->setWidth(930)
  152. ->setOffsetX(10)
  153. ->setOffsetY(50);
  154. $shape->getActiveParagraph()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_LEFT );
  155.  
  156. $textRun = $shape->createTextRun('Need more info?');
  157. $textRun->getFont()->setBold(true)
  158. ->setSize(48)
  159. ->setColor($colorBlack);
  160.  
  161. // Create a shape (text)
  162. echo date('H:i:s') . ' Create a shape (rich text)'.EOL;
  163. $shape = $currentSlide->createRichTextShape();
  164. $shape->setHeight(600)
  165. ->setWidth(930)
  166. ->setOffsetX(10)
  167. ->setOffsetY(130);
  168. $shape->getActiveParagraph()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_LEFT );
  169.  
  170. $textRun = $shape->createTextRun('Check the project site on GitHub:');
  171. $textRun->getFont()->setSize(36)
  172. ->setColor($colorBlack);
  173.  
  174. $shape->createBreak();
  175.  
  176. $textRun = $shape->createTextRun('https://github.com/PHPOffice/PHPPresentation/');
  177. $textRun->getFont()->setSize(32)
  178. ->setColor($colorBlack);
  179. $textRun->getHyperlink()->setUrl('https://github.com/PHPOffice/PHPPresentation/')
  180. ->setTooltip('PHPPresentation');
  181.  
  182. // Save file
  183. echo write($objPHPPresentation, basename(__FILE__, '.php'), $writers);
  184. if (!CLI) {
  185. include_once 'Sample_Footer.php';
  186. }

  1.开始引入所有需要的文件

  2.创建ppt对象

  

  1. $objPHPPresentation = new PhpPresentation();

  3.创建原型(一些文档的基本信息)

  1. $objPHPPresentation->getDocumentProperties()->setCreator('PHPOffice')
  2. ->setLastModifiedBy('PHPPresentation Team')
  3. ->setTitle('Sample 02 Title')
  4. ->setSubject('Sample 02 Subject')
  5. ->setDescription('Sample 02 Description')
  6. ->setKeywords('office 2007 openxml libreoffice odt php')
  7. ->setCategory('Sample Category');

 4.移除默认的首页

  1. $objPHPPresentation->removeSlideByIndex(0);

  5.创建自定义的页

  1. $currentSlide = createTemplatedSlide($objPHPPresentation);

  6.创建文本域的参数

   从四个维度出发 ,宽高,左边距,右边距,文本域中的文字表现形式

  1. $shape = $currentSlide->createRichTextShape();
  2. $shape->setHeight(200);
  3. $shape->setWidth(900);
  4. $shape->setOffsetX(10);
  5. $shape->setOffsetY(400);
  6. $shape->getActiveParagraph()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_LEFT );

  7.创建文字

  1. $textRun = $shape->createTextRun('What is PHPPresentation?');
  2. $textRun->getFont()->setBold(true)
  3. ->setSize(48)
  4. ->setColor($colorBlack);

  

每一页都是由以上的过程而来的,只要重复上面的步骤就可以了。

注意加入图片

要new一个gd库

  1. $shape = new Drawing\Gd();
  2. $shape->setName('Sample image')
  3. ->setDescription('Sample image')
  4. ->setImageResource($gdImage)
  5. ->setRenderingFunction(Drawing\Gd::RENDERING_JPEG)
  6. ->setMimeType(Drawing\Gd::MIMETYPE_DEFAULT)
  7. ->setHeight(36)
  8. ->setOffsetX(10)
  9. ->setOffsetY(10);
  10. $currentSlide->addShape($shape);

  至于下载的事情呢?

  这个可以把东西都放到一个目录下面 用正则去弄就可以了

2.EXCEL系列

关于excel的相关操作有两种可行的办法

  1.利用PHP中的扩展实现

    github:https://github.com/iliaal/php_excel

  2.利用PHPEXCEL类是的第三方工具类实现

  github:https://github.com/faisalman/simple-excel-php

现在我们介绍的是第二种方法

  1. include 'PHPExcel.php';
  2. include 'PHPExcel/Writer/Excel2007.php';
  3. //或者include 'PHPExcel/Writer/Excel5.php'; 用于输出.xls的
  4. 创建一个excel
  5. $objPHPExcel = new PHPExcel();
  6. 保存excel2007格式
  7. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  8. //或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式
  9. $objWriter->save("xxx.xlsx");
  10. 直接输出到浏览器
  11. $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
  12. header("Pragma: public");
  13. header("Expires: 0″);
  14. header("Cache-Control:must-revalidate, post-check=0, pre-check=0″);
  15. header("Content-Type:application/force-download");
  16. header("Content-Type:application/vnd.ms-execl");
  17. header("Content-Type:application/octet-stream");
  18. header("Content-Type:application/download");;
  19. header('Content-Disposition:attachment;filename="resume.xls"');
  20. header("Content-Transfer-Encoding:binary");
  21. $objWriter->save('php://output');
  22. ——————————————————————————————————————–
  23. 设置excel的属性:
  24. 创建人
  25. $objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
  26. 最后修改人
  27. $objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
  28. 标题
  29. $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
  30. 题目
  31. $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
  32. 描述
  33. $objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
  34. 关键字
  35. $objPHPExcel->getProperties()->setKeywords("office 2007 openxml php");
  36. 种类
  37. $objPHPExcel->getProperties()->setCategory("Test result file");
  38. ——————————————————————————————————————–
  39. 设置当前的sheet
  40. $objPHPExcel->setActiveSheetIndex(0);
  41. 设置sheetname
  42. $objPHPExcel->getActiveSheet()->setTitle('Simple');
  43. 设置单元格的值
  44. $objPHPExcel->getActiveSheet()->setCellValue('A1', 'String');
  45. $objPHPExcel->getActiveSheet()->setCellValue('A2', 12);
  46. $objPHPExcel->getActiveSheet()->setCellValue('A3', true);
  47. $objPHPExcel->getActiveSheet()->setCellValue('C5', '=SUM(C2:C4)');
  48. $objPHPExcel->getActiveSheet()->setCellValue('B8', '=MIN(B2:C5)');
  49. 合并单元格
  50. $objPHPExcel->getActiveSheet()->mergeCells('A18:E22');
  51. 分离单元格
  52. $objPHPExcel->getActiveSheet()->unmergeCells('A28:B28');
  53.  
  54. 保护cell
  55. $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection!
  56. $objPHPExcel->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');
  57. 设置格式
  58. // Set cell number formats
  59. echo date('H:i:s') . " Set cell number formats\n";
  60. $objPHPExcel->getActiveSheet()->getStyle('E4')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
  61. $objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('E4'), 'E5:E13' );
  62. 设置宽width
  63. // Set column widths
  64. $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
  65. $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
  66. 设置font
  67. $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara');
  68. $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20);
  69. $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);
  70. $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
  71. $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
  72. $objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
  73. $objPHPExcel->getActiveSheet()->getStyle('D13')->getFont()->setBold(true);
  74. $objPHPExcel->getActiveSheet()->getStyle('E13')->getFont()->setBold(true);
  75. 设置align
  76. $objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  77. $objPHPExcel->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  78. $objPHPExcel->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  79. $objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);
  80. //垂直居中
  81. $objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
  82. 设置columnborder
  83. $objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  84. $objPHPExcel->getActiveSheet()->getStyle('B4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  85. $objPHPExcel->getActiveSheet()->getStyle('C4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  86. $objPHPExcel->getActiveSheet()->getStyle('D4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  87. $objPHPExcel->getActiveSheet()->getStyle('E4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  88. 设置bordercolor
  89. $objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->getColor()->setARGB('FF993300');
  90. $objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getTop()->getColor()->setARGB('FF993300');
  91. $objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getBottom()->getColor()->setARGB('FF993300');
  92. $objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getTop()->getColor()->setARGB('FF993300');
  93. $objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getBottom()->getColor()->setARGB('FF993300');
  94. $objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getRight()->getColor()->setARGB('FF993300');
  95. 设置填充颜色
  96. $objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  97. $objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF808080');
  98. $objPHPExcel->getActiveSheet()->getStyle('B1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  99. $objPHPExcel->getActiveSheet()->getStyle('B1')->getFill()->getStartColor()->setARGB('FF808080');
  100. 加图片
  101. $objDrawing = new PHPExcel_Worksheet_Drawing();
  102. $objDrawing->setName('Logo');
  103. $objDrawing->setDescription('Logo');
  104. $objDrawing->setPath('./images/officelogo.jpg');
  105. $objDrawing->setHeight(36);
  106. $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
  107. $objDrawing = new PHPExcel_Worksheet_Drawing();
  108. $objDrawing->setName('Paid');
  109. $objDrawing->setDescription('Paid');
  110. $objDrawing->setPath('./images/paid.png');
  111. $objDrawing->setCoordinates('B15');
  112. $objDrawing->setOffsetX(110);
  113. $objDrawing->setRotation(25);
  114. $objDrawing->getShadow()->setVisible(true);
  115. $objDrawing->getShadow()->setDirection(45);
  116. $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
  117. //处理中文输出问题
  118. 需要将字符串转化为UTF-8编码,才能正常输出,否则中文字符将输出为空白,如下处理:
  119. $str = iconv('gb2312', 'utf-8', $str);
  120. 或者你可以写一个函数专门处理中文字符串:
  121. function convertUTF8($str)
  122. {
  123. if(empty($str)) return '';
  124. return iconv('gb2312', 'utf-8', $str);
  125. }
  126. //从数据库输出数据处理方式
  127. 从数据库读取数据如:
  128. $db = new Mysql($dbconfig);
  129. $sql = "SELECT * FROM 表名";
  130. $row = $db->GetAll($sql); // $row 为二维数组
  131. $count = count($row);
  132. for ($i = 2; $i <= $count+1; $i++) {
  133. $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, convertUTF8($row[$i-2][1]));
  134. $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, convertUTF8($row[$i-2][2]));
  135. $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, convertUTF8($row[$i-2][3]));
  136. $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, convertUTF8($row[$i-2][4]));
  137. $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, convertUTF8(date("Y-m-d", $row[$i-2][5])));
  138. $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, convertUTF8($row[$i-2][6]));
  139. $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, convertUTF8($row[$i-2][7]));
  140. $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, convertUTF8($row[$i-2][8]));
  141. }
  142.  
  143. 在默认sheet后,创建一个worksheet
  144. echo date('H:i:s') . " Create new Worksheet object\n";
  145. $objPHPExcel->createSheet();
  146. $objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
  147. $objWriter-save('php://output');

步骤:

1。创建一个excel

2.保存excel—2007格式

3.直接输出到浏览器

4.设置excel的属性

5.设置当前的sheet

6.选填:

  1. 加图片

7.读取数据库(选填)

更多请看github上面的demo

3.WORD系列

1.word的创建

    本来想要写的但是发现博客园的一哥们写得很全很不错:http://www.cnblogs.com/phphuaibei/archive/2011/11/30/2269427.html

  2.word的导出

  不使用插件的话一般有两种方法:‘

  1.利用mht

  

  1. <?php
  2. //中文编码转换
  3. function utf8_unicode($c)
  4. {
  5. switch(strlen($c))
  6. {
  7. case 1:
  8. return ord($c);
  9. case 2:
  10. $n = (ord($c[0]) & 0x3f) << 6;
  11. $n += ord($c[1]) & 0x3f;
  12. return $n;
  13. case 3:
  14. $n = (ord($c[0]) & 0x1f) << 12;
  15. $n += (ord($c[1]) & 0x3f) << 6;
  16. $n += ord($c[2]) & 0x3f;
  17. return $n;
  18. case 4:
  19. $n = (ord($c[0]) & 0x0f) << 18;
  20. $n += (ord($c[1]) & 0x3f) << 12;
  21. $n += (ord($c[2]) & 0x3f) << 6;
  22. $n += ord($c[3]) & 0x3f;
  23. return $n;
  24. }
  25. }
  26. function cn2mht($str)
  27. {
  28. preg_match_all("/[\x80-\xff]?./",$str,$ar);
  29. foreach($ar[0] as $v)
  30. $ret.="&#".utf8_unicode(iconv("GB2312","UTF-8",$v)).";";
  31. return $ret;
  32. }
  33. ob_start();//打开输出缓冲区
  34. header("content-type:application/doc");
  35. header("content-disposition:attachment;filename={$YEAR}年度考核登记表.doc");
  36. $template="template.mht";
  37. $contents=file_get_contents($template);
  38. //替换
  39. $contents=str_replace("{{year}}",$YEAR,$contents);
  40. $contents=str_replace("{{name}}",cn2mht($NAME),$contents);
  41. //换行符替换:\n-><br>,<br>-><br>
  42. $ITEM_DESC = cn2mht(str_replace( "\n", "<br>", $ITEM_DESC ));
  43. $ITEM_DESC = str_replace( "<br>", "<br>", $ITEM_DESC );
  44. echo $contents;

  

  2.建立一个缓冲区,将内容输出到缓冲区中,再赋予新建的文件中

  

  1. <?php
  2. class word
  3. {
  4. function start() //定义要保存数据的开始
  5. {
  6. ob_start(); //开始输出缓冲
  7. //设置生成word的格式
  8. print '<html xmlns="urn:schemas-microsoft-comfficeffice"
  9. xmlns:w="urn:schemas-microsoft-comffice:word"
  10. xmlns="http://www.w3.org/TR/REC-html40">';
  11. }
  12. function save($path) //定义要保存数据的结束,同时把数据保存到word中
  13. //所要保存的数据必须限定在该类的start()和save()之间
  14. {
  15. print "</html>";
  16. $data=ob_get_contents(); //返回内部缓冲的内容 即把输出变成字符串
  17. ob_end_clean(); //结束输出缓冲,清洁(擦除)输出缓冲区并关闭输出缓冲
  18. $this->wirtetoword($path,$data);
  19. }
  20. function wirtetoword($fn,$data) //将数据已二进制的形式保存到word中
  21. {
  22. $fp=fopen($fn,"wb");
  23. fwrite($fp,$data);
  24. fclose($fp);
  25. }
  26. }
  27.  
  28. if(@$_GET[id]!='')
  29. {
  30. $word=new word();//示例化对象
  31. $word->start();//定义要保存数据的开始
  32. }
  33. echo "<font color=\"red\">out to word</font>";
  34. if(@$_GET[id]!='')
  35. {
  36. $word->save('word.doc');//定义要保存数据的结束,同时把数据保存到word中
  37. }
  38. if(@$_GET[id]=='')
  39. {
  40. //超链接中的x仅仅是为了传一个值,确认下载,没有其他的实际意义
  41. ?>
  42. <a href="javascript:;"><div onclick="window.location.href = window.location.href+'?id=x'">点击跳到下载页面</div></a>
  43. <?php
  44. }else{
  45. echo "<a href=\"word.doc\">下载</a>";
  46. }

  

PHP执行文档操作的更多相关文章

  1. jQuery 核心 - noConflict() 方法,jQuery 文档操作 - detach() 方法

    原文地址:http://www.w3school.com.cn/jquery/manipulation_detach.asp   实例 使用 noConflict() 方法为 jQuery 变量规定新 ...

  2. Jquery----对文档操作

    jquery对css操作: 1.CSS .css() - .css("color") -> 获取color css值 - .css("color", &q ...

  3. python 全栈开发,Day54(jQuery的属性操作,使用jQuery操作input的value值,jQuery的文档操作)

    昨日内容回顾 jQuery 宗旨:write less do more 就是js的库,它是javascript的基础上封装的一个框架 在前端中,一个js文件就是一个模块 一.用法: 1.引入包 2.入 ...

  4. Jquery框架1.选择器|效果图|属性、文档操作

    1.JavaScript和jquery的对比 书写繁琐,代码量大 代码复杂 动画效果,很难实现.使用定时器 各种操作和处理 <!DOCTYPE html> <html lang=&q ...

  5. MongoDB入门---文档操作之增删改

    之前的两篇文章,已经分享过关于MongoDB的集合还有数据库的各种操作,接下来就涉及到最主要的喽,那就是数据方面的操作,在这里叫做文档操作.话不多说,大家来看正文.     首先来看一下它的数据结构: ...

  6. jQuery 文档操作 - prependTo() ,appendTo()方法

    其他jquery文档操作方法:http://www.w3school.com.cn/jquery/jquery_ref_manipulation.asp jQuery 参考手册 - 文档操作 appe ...

  7. MongoDB系列---集合与文档操作03

    MongoDB-——Collection 学习大纲: 1.集合操作 2.文档操作 知识回顾: 上一篇我们讲述了如何对MongoDB的权限和用户进行日常的基本操作,来达到我们对数据库的基本安全保障. 一 ...

  8. es之java删除文档操作

    删除文档操作 @Test public void deleteDocument(){ DeleteResponse response = client.prepareDelete("twit ...

  9. 008-elasticsearch5.4.3【二】ES使用、ES客户端、索引操作【增加、删除】、文档操作【crud】

    一.ES使用,以及客户端 1.pom引用 <dependency> <groupId>org.elasticsearch.client</groupId> < ...

随机推荐

  1. Redis命令拾遗一(字符串类型)

    文章归博客园和作者“蜗牛”共同所有 .转载和爬虫请注明原文Redis系列链接 http://www.cnblogs.com/tdws/tag/NoSql/ Redis有五种基本数据类型.他们分别是字符 ...

  2. sql 补齐字段位数

    select top 100 lmdte, right(replicate('0',6)+ltrim(lmtme),6) from smtpdsum where lmdte <> 0

  3. WinForm拖动没有标题栏窗体的方法

    建立窗体的名称修改为:Form_HoverTree 文后附有源码下载. 主要代码: Point _HoverTreePosition; public Form_HoverTree() { Initia ...

  4. python 数据类型 ---字符串

    1. 字符串去除空白 ,strip() , 包括空格,tab键, 换行符 >>> name = " Frank " >>> name.strip ...

  5. 数据仓库开发——Kettle使用示例

    Kettle是一个开园ETL工具,做数据仓库用Spoon. 工具:下载Spoon,解压即可用   1.认识常用组件:     表输入     插入\更新     数据同步     文本文件输出     ...

  6. J2EE项目开发中常用到的公共方法

    在项目IDCM中涉及到多种工单,包括有:服务器|网络设备上下架工单.服务器|网络设备重启工单.服务器光纤网线更换工单.网络设备撤线布线工单.服务器|网络设备替换工单.服务器|网络设备RMA工单.通用原 ...

  7. KMP算法

    KMP算法是字符串模式匹配当中最经典的算法,原来大二学数据结构的有讲,但是当时只是记住了原理,但不知道代码实现,今天终于是完成了KMP的代码实现.原理KMP的原理其实很简单,给定一个字符串和一个模式串 ...

  8. css3+jquery制作3d旋转相册

    首先来看一下今天的炫酷效果: 首先分析一下这张图片: 1.每张图片都有倒影 2.这11张图片呈圆形均匀排列 3.可旋转,上下移动(当然这是效果做出来以后,图片是分析不出来的) 那下面就开始吧. 一.准 ...

  9. Sublime Text通过插件编译Sass为CSS及中文编译异常解决

    虽然PostCSS才是未来,但是Sass成熟稳定,拥有一大波忠实的使用者,及开源项目,且最近Bootstrap 4 alpha也从Less转到Sass了.所以了解Sass还是非常有必要的. 基于快速开 ...

  10. jquery toggle方法使用出错?请看这里-遁地龙卷风

    这个函数在1.9之前和1.9之后的用法大不相同 1 1.9之间,用于点击元素时函数的轮流执行 toggle(function() { alert(1);//1,3,5,7... },function( ...