5

Wordを開くと、WordOpenXML形式で保存できます。docxファイルをzipとして開き、そこからデータを抽出することに関する投稿を見てきました。しかし、私が本当に望んでいるのは、MSOfficeで「名前を付けて保存」アクションを実行するときとまったく同じようにdocxを単一のXMLに変換する方法です。何をすべきか?

そして、.doc形式でこれを行う方法は?

注:これをプログラムで実行したいと思います。できれば、PHPを使用したLinux開発条件下で。しかし、それが利用できない場合は、他の言語でもかまいません。最後に、結局のところ、これを行うためにWindowsサーバーを起動することを検討できます。

4

3 に答える 3

10

デッド スレッドを復活させて申し訳ありませんが、DOCX ファイルに対する回答が見つかりました。DOCX ファイルは、XML ファイルの単なる ZIP アーカイブです。したがって、そのファイルの 1 つである v.gr の内容を抽出するには、. Linux 環境で word/document.xml を解凍するには、次のように unzip を実行する必要があります。

unzip -q -c myfile.docx word/document.xml

このコマンドの出力を PHP スクリプトの $xml 変数に取り込むには、次を発行できます。

$xml = shell_exec ("unzip -q -c myfile.docx word/document.xml");

この回答が DOCX ファイルに役立つことを願っています。遅いよりはましです。

DOC ファイルの場合、この方法は機能しません。

于 2015-07-07T12:56:33.430 に答える
3

Eric White が、 Transforming-open-xml-documents-to-flat-opc-formatで C# の docx に対してこれを行う方法を説明しています

docx4j (私が取り組んでいます) を使用して行うこともできます。「j」は Java です。

于 2012-08-15T05:18:46.057 に答える
2

Word の場合: ファイル | 名前を付けて保存 | Word XML ドキュメント (*.xml) は、必要な Open XML 形式を単一の XML ファイルとして提供します。

Interop を使用するコード: Document オブジェクトの SaveAs メソッドを使用し、保存形式として WdSaveFormat.wdFormatXMLDocument を使用します。Document.Convert メソッドを使用して、インストールされている MS Office バージョンとの互換性を更新する必要もあります。

したがって、必ずしも完全なデモではありませんが、これで正しいアイデアが得られるはずです。

ActiveDocument.Convert();

WdSaveFormat myNewSaveFormat = WdSaveFormat.wdFormatXMLDocument;
ActiveDocument.SaveAs(newFilePath, myNewSaveFormat); //where newFilePath can be a FileInfo object specifying the new file name and extension (docx)
于 2012-08-13T12:54:50.857 に答える