如何使用PHP读取编辑pptx / docx / xlsx文件?

时间:2011-04-06 06:38:07

标签: php powerpoint docx xlsx

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

5 个答案:

答案 0 :(得分:12)

据我所知,那些文件格式docx,xl​​sx,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 Libraries?

当我从上面提到的相关stackoverflow问题中读到时, 你可以使用phpdocx,或其他一些叫做PHPWord。

希望这可以澄清一些有助于完成任务的步骤

答案 1 :(得分:3)

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

答案 2 :(得分:3)

这是一个只能读取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; 
    }
?> 

答案 3 :(得分:2)

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

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

答案 4 :(得分:0)

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