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 Libraries?

上記の関連するstackoverflowの質問から読んだように、phpdocx、またはPHPWordと呼ばれる他のものを使用できます。

これにより、あなたの欲求を達成するのに役立ついくつかの手順が明確になることを願っています

于 2011-04-06T07:12:39.283 に答える
3

3つの形式すべてを処理できるライブラリは1つではありませんが、個々の形式を読み書きできる個々のライブラリがあります。

  • PHPPowerpointは、pptxファイルを書き込むことはできますが、読み取ることはできません。
  • PHPWordは、docxファイルを書き込むことはできますが、読み取ることはできません。
  • PHPLiveDocxはdocxファイルを書き込むことができます(そして私は読み取りもできると思います)
  • PHPExcelはxlsxファイルの読み取りと書き込みができます
于 2011-04-06T07:40:08.130 に答える
2

OpenTBS PHP ツールを使用して、テンプレートから docx/xlsx/pptx ドキュメントを作成できます。

現在開発中のバージョンでは、XLSX のサポートが改善されます。

于 2011-05-05T08:33:09.720 に答える
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 に答える
0

私はそれらを使用したことがなく、ドキュメントも不足していますが、サーバーが Windows プラットフォームで実行されている場合は、 .netおよびCOMライブラリを試すことができます。

于 2011-04-06T07:15:58.353 に答える