5

是否有可用于使用 PHP 有效处理 pptx/docx/xlsx 文件的库扩展?到目前为止,我对 PPTX 文件更感兴趣。

4

5 回答 5

12

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

在 PHP 中,我们有这个库来处理这种类型的 zip 文档: http: //php.net/manual/en/book.zip.php

您可以在此处找到有关此 ooxml 标准的所有文档:http: //www.ecma-international.org/publications/standards/Ecma-376.htm

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

如果您不想构建自己的库来处理 ooxml 文件,可以在此处参考相关问题以获取更多信息: PHP OOXML 库?

正如我从上面提到的相关 stackoverflow 问题中读到的,您可以使用 phpdocx,或者其他一些称为 PHPWord。

希望这可以澄清一些步骤以帮助您完成任务

于 2011-04-06T07:12:39.283 回答
3

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

  • PHPPowerpoint可以写,但不能读,pptx 文件
  • PHPWord可以写入但不能读取 docx 文件
  • PHPLiveDocx可以编写(我相信也可以读取)docx 文件
  • PHPExcel可以读写xlsx文件
于 2011-04-06T07:40:08.130 回答
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; 
    }
?> 
于 2013-04-03T10:36:24.807 回答
2

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

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

于 2011-05-05T08:33:09.720 回答
0

我从未使用过它们,并且缺少它们的文档,但是如果您的服务器在 Windows 平台上运行,您可以尝试使用.netCOM库。

于 2011-04-06T07:15:58.353 回答