DOCX.jsはJavaScript製のオープンソース・ソフトウェア(MIT License)です。

Microsoft Officeのファイル形式は〜x形式になって以降、XMLファイルのZipファイルの圧縮であることはよく知られています。しかしだからといってOfficeファイルをWebベースで生成できるようになっているとは思いませんでした。それを可能にするのがDOCX.jsです。

[![](http://images.moongift.jp/2013/09/Screenshot 2013-09-29 17.26.09_thumb.1380546596.png)](http://images.moongift.jp/2013/09/Screenshot 2013-09-29 17.26.09.1380546596.png)
テストページ。Run Testをクリックします。

[![](http://images.moongift.jp/2013/09/Screenshot 2013-09-29 17.26.17_thumb.1380546602.png)](http://images.moongift.jp/2013/09/Screenshot 2013-09-29 17.26.17.1380546602.png)
生成されました!

該当部分のコード。

DOCX.jsは今のところテキストを挿入しかできません。画像やOLEオブジェクトを貼付けたりすることはできないのでご注意ください。とは言えWebブラウザ上でZipファイルを生成してしまえばここまでのことができるのかを驚かされること間違いなしです。

Microsoft Officeファイルの仕様は公開されていますので、それをJavaScriptで実装し直して最後にZipファイルに圧縮すればクライアントサイドだけでテキストを編集してそのままWordファイルとしてダウンロードなんてことができてしまいます。

なんでもJavaScriptといった風潮はありますが、サーバサイドのコードが不要になっていくのが凄いです。クライアントサイドでできるとオフラインでも機能が使えるようになりますし、サーバサイドの負荷もかかりません。他にもできそうなことは色々試してみましょう。

MrRio/DOCX.js