2011-04-06 104 views

回答

11

根据我所知,这些文件格式docx,xl​​sx,pptx只是zip文件。 它们属于Office Open XML(OOXML)标准。

在PHP中,我们有这个库操纵这种类型的压缩文件: http://php.net/manual/en/book.zip.php

您可以找到有关这个OOXML标准在这里的所有文件: http://www.ecma-international.org/publications/standards/Ecma-376.htm

,以测试这些结构的最佳方式ooxml文件是将文件 扩展名改为.zip,并将其解压缩以找出内部的内容。

如果你不想建立自己的库,用于处理OOXML文件, 你可以参考相关的问题在这里获得更多信息: PHP OOXML Libraries?

正如我上面提到的相关问题计算器阅读, 你可以使用phpdocx,或者其他一些叫做PHPWord的。

希望这可以澄清一些步骤,以帮助您想要做

0

我从来没有使用过那些和他们的文档缺乏,但如果你的服务器在Windows平台上运行,你可以用.netCOM库尝试。

2

没有一个库可以处理所有三种格式,但有单独的库可以读取和/或写入各种格式。

  • PHPPowerpoint可以写,但不能 读,PPTX文件
  • PHPWord可以写,但是看不懂,docx文件
  • PHPLiveDocx可以写(我相信还会读取)的docx文件
  • PHPExcel可以读取和写入xlsx文件
1

您可以使用OpenTBS从模板构建docx/xlsx/pptx文档PHP工具。

当前正在开发的版本将改进对XLSX的支持。

+0

看起来它没有编辑效果的其他数据一样图表...伟大的建议:) – 2012-03-20 21:32:49

2

这里是可读取docx文件的工作示例。

<?php 
    $filename = "file.docx"; // or /var/www/html/file.docx 

    $content = read_file_docx($filename); 
    if($content !== false) { 
     echo nl2br($content); 
    } 
    else { 
     echo 'Couldn\'t the file. Please check that file.'; 
    } 

    function read_file_docx($filename){ 

     $striped_content = ''; 
     $content = ''; 

     if(!$filename || !file_exists($filename)) return false; 

     $zip = zip_open($filename); 

     if (!$zip || is_numeric($zip)) return false; 

     while ($zip_entry = zip_read($zip)) { 

      if (zip_entry_open($zip, $zip_entry) == FALSE) continue; 

      if (zip_entry_name($zip_entry) != "word/document.xml") continue; 

      $content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); 

      zip_entry_close($zip_entry); 
     }// end while 

     zip_close($zip); 

     //echo $content; 

     //file_put_contents('1.xml', $content); 

     $content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content); 
     $content = str_replace('</w:r></w:p>', "\r\n", $content); 
     $striped_content = strip_tags($content); 

     return $striped_content; 
    } 
?> 
+0

很多''
!似乎你忘了在复制粘贴时删除br。 – Kumar 2013-04-05 05:02:22

+0

删除
标记。 – 2013-04-05 21:31:22

+0

请检查您的代码,仍然需要格式正确 – Kumar 2013-04-10 04:33:18